From ebd13bb82f1ed1bfb845da59af877aa0b0f5325f Mon Sep 17 00:00:00 2001 From: Chip Kent <5250374+chipkent@users.noreply.github.com> Date: Fri, 23 Oct 2026 22:30:17 -0600 Subject: [PATCH 1/4] fix: correct type hints that disagree with the API Several hints describe values the API never sends or returns: - CryptoQuote.bid_price, ask_price and ask_size were int; XQ sends fractional numbers ("bp": 33052.79, "as": 0.601). They are float. - IndexValue.timestamp was str; V sends integer Unix milliseconds. - list_tickers(cusip=...) accepted only int. The API treats a CUSIP as a string: it is alphanumeric, and leading zeros matter ("037833100"). The hint now accepts str as well as int, so existing callers keep type-checking, and the docstring recommends a string. - get_previous_close_agg() was annotated as returning one PreviousCloseAgg, but it returns the "results" array as a list, as the existing test shows. - list_treasury_yields(), list_short_interest(), list_short_volume() and list_ipos() were annotated as returning a List, but like every other list_* method they return a paginating iterator. Hints that are imprecise but still admit every value the API sends, such as integer timestamps hinted as float, are left alone: narrowing them would gain little and could break callers that type-check today. Only annotations and docstrings change; runtime behaviour is the same. --- massive/rest/aggs.py | 4 ++-- massive/rest/economy.py | 4 ++-- massive/rest/reference.py | 12 ++++++------ massive/rest/vX.py | 4 ++-- massive/websocket/models/models.py | 8 ++++---- 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/massive/rest/aggs.py b/massive/rest/aggs.py index cb874fac..e72bea19 100644 --- a/massive/rest/aggs.py +++ b/massive/rest/aggs.py @@ -168,7 +168,7 @@ def get_previous_close_agg( params: Optional[Dict[str, Any]] = None, raw: bool = False, options: Optional[RequestOptionBuilder] = None, - ) -> Union[PreviousCloseAgg, HTTPResponse]: + ) -> Union[List[PreviousCloseAgg], HTTPResponse]: """ Get the previous day's open, high, low, and close (OHLC) for the specified stock ticker. @@ -176,7 +176,7 @@ def get_previous_close_agg( :param adjusted: Whether or not the results are adjusted for splits. By default, results are adjusted. Set this to false to get results that are NOT adjusted for splits. :param params: Any additional query params :param raw: Return raw object instead of results object - :return: Previous close aggregate + :return: List of previous close aggregates (the API returns a one-element list) """ url = f"/v2/aggs/ticker/{ticker}/prev" diff --git a/massive/rest/economy.py b/massive/rest/economy.py index 4c4b251f..7ba52d88 100644 --- a/massive/rest/economy.py +++ b/massive/rest/economy.py @@ -35,7 +35,7 @@ def list_treasury_yields( params: Optional[Dict[str, Any]] = None, raw: bool = False, options: Optional[RequestOptionBuilder] = None, - ) -> Union[List[TreasuryYield], HTTPResponse]: + ) -> Union[Iterator[TreasuryYield], HTTPResponse]: """ Retrieve treasury yield data. @@ -51,7 +51,7 @@ def list_treasury_yields( :param params: Additional query parameters. :param raw: Return raw HTTPResponse object if True, else return List[TreasuryYield]. :param options: RequestOptionBuilder for additional headers or params. - :return: A list of TreasuryYield objects or HTTPResponse if raw=True. + :return: An iterator of TreasuryYield objects or HTTPResponse if raw=True. """ url = "/fed/v1/treasury-yields" diff --git a/massive/rest/reference.py b/massive/rest/reference.py index b6886c55..12525548 100644 --- a/massive/rest/reference.py +++ b/massive/rest/reference.py @@ -92,7 +92,7 @@ def list_tickers( type: Optional[str] = None, market: Optional[str] = None, exchange: Optional[str] = None, - cusip: Optional[int] = None, + cusip: Optional[Union[int, str]] = None, cik: Optional[int] = None, date: Optional[str] = None, active: Optional[bool] = None, @@ -115,7 +115,7 @@ def list_tickers( :param type: Specify the type of the tickers. Find the types that we support via our Ticker Types API. Defaults to empty string which queries all types. :param market: Filter by market type. By default all markets are included. :param exchange: Specify the assets primary exchange Market Identifier Code (MIC) according to ISO 10383. Defaults to empty string which queries all exchanges. - :param cusip: Specify the CUSIP code of the asset you want to search for. Find more information about CUSIP codes at their website. Defaults to empty string which queries all CUSIPs. + :param cusip: Specify the CUSIP code of the asset you want to search for. The API treats a CUSIP as a string, so pass a string such as "037833100": an int drops leading zeros and cannot hold the letters some CUSIPs contain. An int is still accepted for backward compatibility. Find more information about CUSIP codes at their website. Defaults to empty string which queries all CUSIPs. :param cik: Specify the CIK of the asset you want to search for. Find more information about CIK codes at their website. Defaults to empty string which queries all CIKs. :param date: Specify a point in time to retrieve tickers available on that date. Defaults to the most recent available date. :param search: Search for terms within the ticker and/or company name. @@ -606,7 +606,7 @@ def list_short_interest( params: Optional[Dict[str, Any]] = None, raw: bool = False, options: Optional[RequestOptionBuilder] = None, - ) -> Union[List[ShortInterest], HTTPResponse]: + ) -> Union[Iterator[ShortInterest], HTTPResponse]: """ Retrieve short interest data for stocks. @@ -632,7 +632,7 @@ def list_short_interest( :param params: Additional query parameters. :param raw: Return raw HTTPResponse object if True, else return List[ShortInterest]. :param options: RequestOptionBuilder for additional headers or params. - :return: A list of ShortInterest objects or HTTPResponse if raw=True. + :return: An iterator of ShortInterest objects or HTTPResponse if raw=True. """ url = "/stocks/v1/short-interest" @@ -669,7 +669,7 @@ def list_short_volume( params: Optional[Dict[str, Any]] = None, raw: bool = False, options: Optional[RequestOptionBuilder] = None, - ) -> Union[List[ShortVolume], HTTPResponse]: + ) -> Union[Iterator[ShortVolume], HTTPResponse]: """ Retrieve short volume data for stocks. @@ -695,7 +695,7 @@ def list_short_volume( :param params: Additional query parameters. :param raw: Return raw HTTPResponse object if True, else return List[ShortVolume]. :param options: RequestOptionBuilder for additional headers or params. - :return: A list of ShortVolume objects or HTTPResponse if raw=True. + :return: An iterator of ShortVolume objects or HTTPResponse if raw=True. """ url = "/stocks/v1/short-volume" diff --git a/massive/rest/vX.py b/massive/rest/vX.py index ebd95a1a..91b1e782 100644 --- a/massive/rest/vX.py +++ b/massive/rest/vX.py @@ -93,7 +93,7 @@ def list_ipos( params: Optional[Dict[str, Any]] = None, raw: bool = False, options: Optional[RequestOptionBuilder] = None, - ) -> Union[List[IPOListing], HTTPResponse]: + ) -> Union[Iterator[IPOListing], HTTPResponse]: """ Retrieve upcoming or historical IPOs. @@ -108,7 +108,7 @@ def list_ipos( :param params: Additional query params. :param raw: Return raw HTTPResponse object if True, else return List[IPOListing]. :param options: RequestOptionBuilder for additional headers or params. - :return: A list of IPOListing objects or HTTPResponse if raw=True. + :return: An iterator of IPOListing objects or HTTPResponse if raw=True. """ url = "/vX/reference/ipos" diff --git a/massive/websocket/models/models.py b/massive/websocket/models/models.py index 6b3acd90..d3711e57 100644 --- a/massive/websocket/models/models.py +++ b/massive/websocket/models/models.py @@ -217,10 +217,10 @@ class CryptoQuote: event_type: Optional[Union[str, EventType]] = None pair: Optional[str] = None - bid_price: Optional[int] = None + bid_price: Optional[float] = None bid_size: Optional[float] = None - ask_price: Optional[int] = None - ask_size: Optional[int] = None + ask_price: Optional[float] = None + ask_size: Optional[float] = None timestamp: Optional[float] = None exchange_id: Optional[int] = None received_timestamp: Optional[int] = None @@ -328,7 +328,7 @@ class IndexValue: event_type: Optional[Union[str, EventType]] = None value: Optional[float] = None ticker: Optional[str] = None - timestamp: Optional[str] = None + timestamp: Optional[int] = None @staticmethod def from_dict(d): From ce1f0908fe02e23fbfe89b666640e7f9423dbbaa Mon Sep 17 00:00:00 2001 From: Chip Kent <5250374+chipkent@users.noreply.github.com> Date: Fri, 23 Oct 2026 22:15:49 -0600 Subject: [PATCH 2/4] feat: let type checkers see model constructors @modelclass builds an __init__ that accepts every field positionally or by keyword, but type checkers could not see it: a call such as CryptoQuote(pair="BTC-USD", bid_price=1.5) was reported as "Unexpected keyword argument" for every field. Mark modelclass with dataclass_transform (PEP 681) so checkers derive the constructor from the field annotations. The decorator is imported only under TYPE_CHECKING, from typing on 3.11+ and from typing_extensions on 3.10, and is a no-op at runtime, so there is no new runtime dependency and Python 3.10 keeps working. --- massive/modelclass.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/massive/modelclass.py b/massive/modelclass.py index 117f7910..0605180a 100644 --- a/massive/modelclass.py +++ b/massive/modelclass.py @@ -1,10 +1,23 @@ import inspect +import sys import typing from dataclasses import dataclass +if typing.TYPE_CHECKING: + if sys.version_info >= (3, 11): + from typing import dataclass_transform + else: + from typing_extensions import dataclass_transform +else: + + def dataclass_transform(**kwargs): + return lambda f: f + + _T = typing.TypeVar("_T") +@dataclass_transform() def modelclass(cls: typing.Type[_T]) -> typing.Type[_T]: cls = dataclass(cls) type_hints = typing.get_type_hints(cls) From df1964615fa73b6dd3ef79eba86107440b3469b3 Mon Sep 17 00:00:00 2001 From: Chip Kent <5250374+chipkent@users.noreply.github.com> Date: Fri, 23 Oct 2026 22:28:26 -0600 Subject: [PATCH 3/4] feat: overload REST methods on raw so callers get precise return types Every REST method is annotated as returning Union[Model, HTTPResponse] (or Union[Iterator[Model], HTTPResponse]), because raw=True returns the undecoded urllib3 response. Once the package is checked as typed, that union makes ordinary code fail, because the checker cannot rule out HTTPResponse: for t in client.list_tickers(): t.ticker # "HTTPResponse" has no attribute "ticker" client.get_previous_close_agg("AAPL")[0] # not indexable Add three overloads to each of the 92 methods that take raw: - raw: Literal[False] = False returns the model type, so the default call is precise. - *, raw: Literal[True] returns HTTPResponse. raw is keyword-only in this overload because it follows parameters with defaults; a Literal[True] with a default would overlap the first overload, which pyright reports. - raw: bool = False returns the full union, so a non-literal flag, or raw passed positionally, type-checks exactly as before. The overloads copy each implementation's signature and differ only in the raw parameter and the return type. They are declarations only: the implementations, and the signatures that _get_params inspects at runtime, are unchanged. AGENTS.md now describes the pattern for new endpoints. --- AGENTS.md | 1 + massive/rest/aggs.py | 191 ++- massive/rest/benzinga.py | 1308 ++++++++++++++++++-- massive/rest/economy.py | 386 +++++- massive/rest/etf_global.py | 651 +++++++++- massive/rest/financials.py | 946 +++++++++++++- massive/rest/futures.py | 661 +++++++++- massive/rest/indicators.py | 252 +++- massive/rest/quotes.py | 138 ++- massive/rest/reference.py | 2397 +++++++++++++++++++++++++++++++----- massive/rest/snapshot.py | 293 ++++- massive/rest/summaries.py | 27 +- massive/rest/tmx.py | 174 ++- massive/rest/trades.py | 104 +- massive/rest/vX.py | 142 ++- 15 files changed, 7219 insertions(+), 452 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 7da1d1bf..4431e94f 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -51,6 +51,7 @@ The OpenAPI spec at https://api.massive.com/openapi is the source of truth for p - Single-object endpoints are named `get_<...>` and call `self._get(...)`. - Every query param is a keyword argument defaulting to `None`. Write range filters as `x_gt`, `x_gte`, `x_lt`, `x_lte`, `x_any_of`; `_get_params` turns them into `x.gt` and so on. - Always end the signature with `params: Optional[Dict[str, Any]] = None, raw: bool = False, options: Optional[RequestOptionBuilder] = None`. + - Precede the method with three `@overload`s that copy its signature, so callers get the precise type for each value of `raw`: `raw: Literal[False] = False` returns the model type (`Iterator[Model]`, `List[Model]` or `Model`); `*, raw: Literal[True]` (keyword-only) returns `HTTPResponse`; and `raw: bool = False` returns the full `Union`. Copy an existing method, such as `list_aggs` in `massive/rest/aggs.py`. 4. **New domain only.** Create a `BaseClient` subclass and add it to `RESTClient`'s bases in `massive/rest/__init__.py`. 5. **Tests, examples, docs.** For core endpoints, add a fixture under `test_rest/mocks/.json`, a test in `test_rest/test_.py`, an example in `examples/rest/`, and an `automethod` entry in `docs/source/*.rst`. 6. Run `make lint` and `make test`. diff --git a/massive/rest/aggs.py b/massive/rest/aggs.py index e72bea19..9834aa23 100644 --- a/massive/rest/aggs.py +++ b/massive/rest/aggs.py @@ -1,5 +1,5 @@ from .base import BaseClient -from typing import Optional, Any, Dict, List, Union, Iterator +from typing import Optional, Any, Dict, List, Union, Iterator, Literal, overload from .models import Agg, GroupedDailyAgg, DailyOpenCloseAgg, PreviousCloseAgg, Sort from urllib3 import HTTPResponse from datetime import datetime, date @@ -8,6 +8,52 @@ class AggsClient(BaseClient): + @overload + def list_aggs( + self, + ticker: str, + multiplier: int, + timespan: str, + from_: Union[str, int, datetime, date], + to: Union[str, int, datetime, date], + adjusted: Optional[bool] = None, + sort: Optional[Union[str, Sort]] = None, + limit: Optional[int] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[Agg]: ... + @overload + def list_aggs( + self, + ticker: str, + multiplier: int, + timespan: str, + from_: Union[str, int, datetime, date], + to: Union[str, int, datetime, date], + adjusted: Optional[bool] = None, + sort: Optional[Union[str, Sort]] = None, + limit: Optional[int] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_aggs( + self, + ticker: str, + multiplier: int, + timespan: str, + from_: Union[str, int, datetime, date], + to: Union[str, int, datetime, date], + adjusted: Optional[bool] = None, + sort: Optional[Union[str, Sort]] = None, + limit: Optional[int] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[Agg], HTTPResponse]: ... def list_aggs( self, ticker: str, @@ -53,6 +99,52 @@ def list_aggs( options=options, ) + @overload + def get_aggs( + self, + ticker: str, + multiplier: int, + timespan: str, + from_: Union[str, int, datetime, date], + to: Union[str, int, datetime, date], + adjusted: Optional[bool] = None, + sort: Optional[Union[str, Sort]] = None, + limit: Optional[int] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> List[Agg]: ... + @overload + def get_aggs( + self, + ticker: str, + multiplier: int, + timespan: str, + from_: Union[str, int, datetime, date], + to: Union[str, int, datetime, date], + adjusted: Optional[bool] = None, + sort: Optional[Union[str, Sort]] = None, + limit: Optional[int] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def get_aggs( + self, + ticker: str, + multiplier: int, + timespan: str, + from_: Union[str, int, datetime, date], + to: Union[str, int, datetime, date], + adjusted: Optional[bool] = None, + sort: Optional[Union[str, Sort]] = None, + limit: Optional[int] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[List[Agg], HTTPResponse]: ... def get_aggs( self, ticker: str, @@ -99,6 +191,44 @@ def get_aggs( options=options, ) + @overload + def get_grouped_daily_aggs( + self, + date: Union[str, date], + adjusted: Optional[bool] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + locale: str = "us", + market_type: str = "stocks", + include_otc: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> List[GroupedDailyAgg]: ... + @overload + def get_grouped_daily_aggs( + self, + date: Union[str, date], + adjusted: Optional[bool] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + locale: str = "us", + market_type: str = "stocks", + include_otc: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def get_grouped_daily_aggs( + self, + date: Union[str, date], + adjusted: Optional[bool] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + locale: str = "us", + market_type: str = "stocks", + include_otc: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[List[GroupedDailyAgg], HTTPResponse]: ... + # TODO: next breaking change release move "market_type" to be 2nd mandatory # param def get_grouped_daily_aggs( @@ -132,6 +262,37 @@ def get_grouped_daily_aggs( options=options, ) + @overload + def get_daily_open_close_agg( + self, + ticker: str, + date: Union[str, date], + adjusted: Optional[bool] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> DailyOpenCloseAgg: ... + @overload + def get_daily_open_close_agg( + self, + ticker: str, + date: Union[str, date], + adjusted: Optional[bool] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def get_daily_open_close_agg( + self, + ticker: str, + date: Union[str, date], + adjusted: Optional[bool] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[DailyOpenCloseAgg, HTTPResponse]: ... def get_daily_open_close_agg( self, ticker: str, @@ -161,6 +322,34 @@ def get_daily_open_close_agg( options=options, ) + @overload + def get_previous_close_agg( + self, + ticker: str, + adjusted: Optional[bool] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> List[PreviousCloseAgg]: ... + @overload + def get_previous_close_agg( + self, + ticker: str, + adjusted: Optional[bool] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def get_previous_close_agg( + self, + ticker: str, + adjusted: Optional[bool] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[List[PreviousCloseAgg], HTTPResponse]: ... def get_previous_close_agg( self, ticker: str, diff --git a/massive/rest/benzinga.py b/massive/rest/benzinga.py index fdd9d0b0..0e08d3e7 100644 --- a/massive/rest/benzinga.py +++ b/massive/rest/benzinga.py @@ -1,4 +1,4 @@ -from typing import Optional, Any, Dict, List, Union, Iterator +from typing import Optional, Any, Dict, List, Union, Iterator, Literal, overload from urllib3 import HTTPResponse from datetime import datetime, date @@ -24,6 +24,160 @@ class BenzingaClient(BaseClient): (aligned with the paths from /benzinga/v1/...) """ + @overload + def list_benzinga_analyst_insights( + self, + date: Optional[Union[str, date]] = None, + date_any_of: Optional[str] = None, + date_gt: Optional[Union[str, date]] = None, + date_gte: Optional[Union[str, date]] = None, + date_lt: Optional[Union[str, date]] = None, + date_lte: Optional[Union[str, date]] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + last_updated: Optional[str] = None, + last_updated_any_of: Optional[str] = None, + last_updated_gt: Optional[str] = None, + last_updated_gte: Optional[str] = None, + last_updated_lt: Optional[str] = None, + last_updated_lte: Optional[str] = None, + firm: Optional[str] = None, + firm_any_of: Optional[str] = None, + firm_gt: Optional[str] = None, + firm_gte: Optional[str] = None, + firm_lt: Optional[str] = None, + firm_lte: Optional[str] = None, + rating_action: Optional[str] = None, + rating_action_any_of: Optional[str] = None, + rating_action_gt: Optional[str] = None, + rating_action_gte: Optional[str] = None, + rating_action_lt: Optional[str] = None, + rating_action_lte: Optional[str] = None, + benzinga_firm_id: Optional[str] = None, + benzinga_firm_id_any_of: Optional[str] = None, + benzinga_firm_id_gt: Optional[str] = None, + benzinga_firm_id_gte: Optional[str] = None, + benzinga_firm_id_lt: Optional[str] = None, + benzinga_firm_id_lte: Optional[str] = None, + benzinga_rating_id: Optional[str] = None, + benzinga_rating_id_any_of: Optional[str] = None, + benzinga_rating_id_gt: Optional[str] = None, + benzinga_rating_id_gte: Optional[str] = None, + benzinga_rating_id_lt: Optional[str] = None, + benzinga_rating_id_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[BenzingaAnalystInsight]: ... + @overload + def list_benzinga_analyst_insights( + self, + date: Optional[Union[str, date]] = None, + date_any_of: Optional[str] = None, + date_gt: Optional[Union[str, date]] = None, + date_gte: Optional[Union[str, date]] = None, + date_lt: Optional[Union[str, date]] = None, + date_lte: Optional[Union[str, date]] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + last_updated: Optional[str] = None, + last_updated_any_of: Optional[str] = None, + last_updated_gt: Optional[str] = None, + last_updated_gte: Optional[str] = None, + last_updated_lt: Optional[str] = None, + last_updated_lte: Optional[str] = None, + firm: Optional[str] = None, + firm_any_of: Optional[str] = None, + firm_gt: Optional[str] = None, + firm_gte: Optional[str] = None, + firm_lt: Optional[str] = None, + firm_lte: Optional[str] = None, + rating_action: Optional[str] = None, + rating_action_any_of: Optional[str] = None, + rating_action_gt: Optional[str] = None, + rating_action_gte: Optional[str] = None, + rating_action_lt: Optional[str] = None, + rating_action_lte: Optional[str] = None, + benzinga_firm_id: Optional[str] = None, + benzinga_firm_id_any_of: Optional[str] = None, + benzinga_firm_id_gt: Optional[str] = None, + benzinga_firm_id_gte: Optional[str] = None, + benzinga_firm_id_lt: Optional[str] = None, + benzinga_firm_id_lte: Optional[str] = None, + benzinga_rating_id: Optional[str] = None, + benzinga_rating_id_any_of: Optional[str] = None, + benzinga_rating_id_gt: Optional[str] = None, + benzinga_rating_id_gte: Optional[str] = None, + benzinga_rating_id_lt: Optional[str] = None, + benzinga_rating_id_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_benzinga_analyst_insights( + self, + date: Optional[Union[str, date]] = None, + date_any_of: Optional[str] = None, + date_gt: Optional[Union[str, date]] = None, + date_gte: Optional[Union[str, date]] = None, + date_lt: Optional[Union[str, date]] = None, + date_lte: Optional[Union[str, date]] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + last_updated: Optional[str] = None, + last_updated_any_of: Optional[str] = None, + last_updated_gt: Optional[str] = None, + last_updated_gte: Optional[str] = None, + last_updated_lt: Optional[str] = None, + last_updated_lte: Optional[str] = None, + firm: Optional[str] = None, + firm_any_of: Optional[str] = None, + firm_gt: Optional[str] = None, + firm_gte: Optional[str] = None, + firm_lt: Optional[str] = None, + firm_lte: Optional[str] = None, + rating_action: Optional[str] = None, + rating_action_any_of: Optional[str] = None, + rating_action_gt: Optional[str] = None, + rating_action_gte: Optional[str] = None, + rating_action_lt: Optional[str] = None, + rating_action_lte: Optional[str] = None, + benzinga_firm_id: Optional[str] = None, + benzinga_firm_id_any_of: Optional[str] = None, + benzinga_firm_id_gt: Optional[str] = None, + benzinga_firm_id_gte: Optional[str] = None, + benzinga_firm_id_lt: Optional[str] = None, + benzinga_firm_id_lte: Optional[str] = None, + benzinga_rating_id: Optional[str] = None, + benzinga_rating_id_any_of: Optional[str] = None, + benzinga_rating_id_gt: Optional[str] = None, + benzinga_rating_id_gte: Optional[str] = None, + benzinga_rating_id_lt: Optional[str] = None, + benzinga_rating_id_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[BenzingaAnalystInsight], HTTPResponse]: ... def list_benzinga_analyst_insights( self, date: Optional[Union[str, date]] = None, @@ -86,6 +240,106 @@ def list_benzinga_analyst_insights( options=options, ) + @overload + def list_benzinga_analysts( + self, + benzinga_id: Optional[str] = None, + benzinga_id_any_of: Optional[str] = None, + benzinga_id_gt: Optional[str] = None, + benzinga_id_gte: Optional[str] = None, + benzinga_id_lt: Optional[str] = None, + benzinga_id_lte: Optional[str] = None, + benzinga_firm_id: Optional[str] = None, + benzinga_firm_id_any_of: Optional[str] = None, + benzinga_firm_id_gt: Optional[str] = None, + benzinga_firm_id_gte: Optional[str] = None, + benzinga_firm_id_lt: Optional[str] = None, + benzinga_firm_id_lte: Optional[str] = None, + firm_name: Optional[str] = None, + firm_name_any_of: Optional[str] = None, + firm_name_gt: Optional[str] = None, + firm_name_gte: Optional[str] = None, + firm_name_lt: Optional[str] = None, + firm_name_lte: Optional[str] = None, + full_name: Optional[str] = None, + full_name_any_of: Optional[str] = None, + full_name_gt: Optional[str] = None, + full_name_gte: Optional[str] = None, + full_name_lt: Optional[str] = None, + full_name_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[BenzingaAnalyst]: ... + @overload + def list_benzinga_analysts( + self, + benzinga_id: Optional[str] = None, + benzinga_id_any_of: Optional[str] = None, + benzinga_id_gt: Optional[str] = None, + benzinga_id_gte: Optional[str] = None, + benzinga_id_lt: Optional[str] = None, + benzinga_id_lte: Optional[str] = None, + benzinga_firm_id: Optional[str] = None, + benzinga_firm_id_any_of: Optional[str] = None, + benzinga_firm_id_gt: Optional[str] = None, + benzinga_firm_id_gte: Optional[str] = None, + benzinga_firm_id_lt: Optional[str] = None, + benzinga_firm_id_lte: Optional[str] = None, + firm_name: Optional[str] = None, + firm_name_any_of: Optional[str] = None, + firm_name_gt: Optional[str] = None, + firm_name_gte: Optional[str] = None, + firm_name_lt: Optional[str] = None, + firm_name_lte: Optional[str] = None, + full_name: Optional[str] = None, + full_name_any_of: Optional[str] = None, + full_name_gt: Optional[str] = None, + full_name_gte: Optional[str] = None, + full_name_lt: Optional[str] = None, + full_name_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_benzinga_analysts( + self, + benzinga_id: Optional[str] = None, + benzinga_id_any_of: Optional[str] = None, + benzinga_id_gt: Optional[str] = None, + benzinga_id_gte: Optional[str] = None, + benzinga_id_lt: Optional[str] = None, + benzinga_id_lte: Optional[str] = None, + benzinga_firm_id: Optional[str] = None, + benzinga_firm_id_any_of: Optional[str] = None, + benzinga_firm_id_gt: Optional[str] = None, + benzinga_firm_id_gte: Optional[str] = None, + benzinga_firm_id_lt: Optional[str] = None, + benzinga_firm_id_lte: Optional[str] = None, + firm_name: Optional[str] = None, + firm_name_any_of: Optional[str] = None, + firm_name_gt: Optional[str] = None, + firm_name_gte: Optional[str] = None, + firm_name_lt: Optional[str] = None, + firm_name_lte: Optional[str] = None, + full_name: Optional[str] = None, + full_name_any_of: Optional[str] = None, + full_name_gt: Optional[str] = None, + full_name_gte: Optional[str] = None, + full_name_lt: Optional[str] = None, + full_name_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[BenzingaAnalyst], HTTPResponse]: ... def list_benzinga_analysts( self, benzinga_id: Optional[str] = None, @@ -130,6 +384,7 @@ def list_benzinga_analysts( options=options, ) + @overload def list_benzinga_consensus_ratings( self, ticker: str, @@ -140,22 +395,504 @@ def list_benzinga_consensus_ratings( date_lte: Optional[Union[str, date]] = None, limit: Optional[int] = None, params: Optional[Dict[str, Any]] = None, - raw: bool = False, + raw: Literal[False] = False, options: Optional[RequestOptionBuilder] = None, - ) -> Union[Iterator[BenzingaConsensusRating], HTTPResponse]: - """ - Endpoint: GET /benzinga/v1/consensus-ratings/{ticker} - """ - url = f"/benzinga/v1/consensus-ratings/{ticker}" - return self._paginate( - path=url, - params=self._get_params(self.list_benzinga_consensus_ratings, locals()), - raw=raw, - deserializer=BenzingaConsensusRating.from_dict, - options=options, - ) - - def list_benzinga_earnings( + ) -> Iterator[BenzingaConsensusRating]: ... + @overload + def list_benzinga_consensus_ratings( + self, + ticker: str, + date: Optional[Union[str, date]] = None, + date_gt: Optional[Union[str, date]] = None, + date_gte: Optional[Union[str, date]] = None, + date_lt: Optional[Union[str, date]] = None, + date_lte: Optional[Union[str, date]] = None, + limit: Optional[int] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_benzinga_consensus_ratings( + self, + ticker: str, + date: Optional[Union[str, date]] = None, + date_gt: Optional[Union[str, date]] = None, + date_gte: Optional[Union[str, date]] = None, + date_lt: Optional[Union[str, date]] = None, + date_lte: Optional[Union[str, date]] = None, + limit: Optional[int] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[BenzingaConsensusRating], HTTPResponse]: ... + def list_benzinga_consensus_ratings( + self, + ticker: str, + date: Optional[Union[str, date]] = None, + date_gt: Optional[Union[str, date]] = None, + date_gte: Optional[Union[str, date]] = None, + date_lt: Optional[Union[str, date]] = None, + date_lte: Optional[Union[str, date]] = None, + limit: Optional[int] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[BenzingaConsensusRating], HTTPResponse]: + """ + Endpoint: GET /benzinga/v1/consensus-ratings/{ticker} + """ + url = f"/benzinga/v1/consensus-ratings/{ticker}" + return self._paginate( + path=url, + params=self._get_params(self.list_benzinga_consensus_ratings, locals()), + raw=raw, + deserializer=BenzingaConsensusRating.from_dict, + options=options, + ) + + @overload + def list_benzinga_earnings( + self, + date: Optional[Union[str, date]] = None, + date_any_of: Optional[str] = None, + date_gt: Optional[Union[str, date]] = None, + date_gte: Optional[Union[str, date]] = None, + date_lt: Optional[Union[str, date]] = None, + date_lte: Optional[Union[str, date]] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + importance: Optional[int] = None, + importance_any_of: Optional[str] = None, + importance_gt: Optional[int] = None, + importance_gte: Optional[int] = None, + importance_lt: Optional[int] = None, + importance_lte: Optional[int] = None, + last_updated: Optional[str] = None, + last_updated_any_of: Optional[str] = None, + last_updated_gt: Optional[str] = None, + last_updated_gte: Optional[str] = None, + last_updated_lt: Optional[str] = None, + last_updated_lte: Optional[str] = None, + date_status: Optional[str] = None, + date_status_any_of: Optional[str] = None, + date_status_gt: Optional[str] = None, + date_status_gte: Optional[str] = None, + date_status_lt: Optional[str] = None, + date_status_lte: Optional[str] = None, + eps_surprise_percent: Optional[float] = None, + eps_surprise_percent_any_of: Optional[str] = None, + eps_surprise_percent_gt: Optional[float] = None, + eps_surprise_percent_gte: Optional[float] = None, + eps_surprise_percent_lt: Optional[float] = None, + eps_surprise_percent_lte: Optional[float] = None, + revenue_surprise_percent: Optional[float] = None, + revenue_surprise_percent_any_of: Optional[str] = None, + revenue_surprise_percent_gt: Optional[float] = None, + revenue_surprise_percent_gte: Optional[float] = None, + revenue_surprise_percent_lt: Optional[float] = None, + revenue_surprise_percent_lte: Optional[float] = None, + fiscal_year: Optional[int] = None, + fiscal_year_any_of: Optional[str] = None, + fiscal_year_gt: Optional[int] = None, + fiscal_year_gte: Optional[int] = None, + fiscal_year_lt: Optional[int] = None, + fiscal_year_lte: Optional[int] = None, + fiscal_period: Optional[str] = None, + fiscal_period_any_of: Optional[str] = None, + fiscal_period_gt: Optional[str] = None, + fiscal_period_gte: Optional[str] = None, + fiscal_period_lt: Optional[str] = None, + fiscal_period_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[BenzingaEarning]: ... + @overload + def list_benzinga_earnings( + self, + date: Optional[Union[str, date]] = None, + date_any_of: Optional[str] = None, + date_gt: Optional[Union[str, date]] = None, + date_gte: Optional[Union[str, date]] = None, + date_lt: Optional[Union[str, date]] = None, + date_lte: Optional[Union[str, date]] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + importance: Optional[int] = None, + importance_any_of: Optional[str] = None, + importance_gt: Optional[int] = None, + importance_gte: Optional[int] = None, + importance_lt: Optional[int] = None, + importance_lte: Optional[int] = None, + last_updated: Optional[str] = None, + last_updated_any_of: Optional[str] = None, + last_updated_gt: Optional[str] = None, + last_updated_gte: Optional[str] = None, + last_updated_lt: Optional[str] = None, + last_updated_lte: Optional[str] = None, + date_status: Optional[str] = None, + date_status_any_of: Optional[str] = None, + date_status_gt: Optional[str] = None, + date_status_gte: Optional[str] = None, + date_status_lt: Optional[str] = None, + date_status_lte: Optional[str] = None, + eps_surprise_percent: Optional[float] = None, + eps_surprise_percent_any_of: Optional[str] = None, + eps_surprise_percent_gt: Optional[float] = None, + eps_surprise_percent_gte: Optional[float] = None, + eps_surprise_percent_lt: Optional[float] = None, + eps_surprise_percent_lte: Optional[float] = None, + revenue_surprise_percent: Optional[float] = None, + revenue_surprise_percent_any_of: Optional[str] = None, + revenue_surprise_percent_gt: Optional[float] = None, + revenue_surprise_percent_gte: Optional[float] = None, + revenue_surprise_percent_lt: Optional[float] = None, + revenue_surprise_percent_lte: Optional[float] = None, + fiscal_year: Optional[int] = None, + fiscal_year_any_of: Optional[str] = None, + fiscal_year_gt: Optional[int] = None, + fiscal_year_gte: Optional[int] = None, + fiscal_year_lt: Optional[int] = None, + fiscal_year_lte: Optional[int] = None, + fiscal_period: Optional[str] = None, + fiscal_period_any_of: Optional[str] = None, + fiscal_period_gt: Optional[str] = None, + fiscal_period_gte: Optional[str] = None, + fiscal_period_lt: Optional[str] = None, + fiscal_period_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_benzinga_earnings( + self, + date: Optional[Union[str, date]] = None, + date_any_of: Optional[str] = None, + date_gt: Optional[Union[str, date]] = None, + date_gte: Optional[Union[str, date]] = None, + date_lt: Optional[Union[str, date]] = None, + date_lte: Optional[Union[str, date]] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + importance: Optional[int] = None, + importance_any_of: Optional[str] = None, + importance_gt: Optional[int] = None, + importance_gte: Optional[int] = None, + importance_lt: Optional[int] = None, + importance_lte: Optional[int] = None, + last_updated: Optional[str] = None, + last_updated_any_of: Optional[str] = None, + last_updated_gt: Optional[str] = None, + last_updated_gte: Optional[str] = None, + last_updated_lt: Optional[str] = None, + last_updated_lte: Optional[str] = None, + date_status: Optional[str] = None, + date_status_any_of: Optional[str] = None, + date_status_gt: Optional[str] = None, + date_status_gte: Optional[str] = None, + date_status_lt: Optional[str] = None, + date_status_lte: Optional[str] = None, + eps_surprise_percent: Optional[float] = None, + eps_surprise_percent_any_of: Optional[str] = None, + eps_surprise_percent_gt: Optional[float] = None, + eps_surprise_percent_gte: Optional[float] = None, + eps_surprise_percent_lt: Optional[float] = None, + eps_surprise_percent_lte: Optional[float] = None, + revenue_surprise_percent: Optional[float] = None, + revenue_surprise_percent_any_of: Optional[str] = None, + revenue_surprise_percent_gt: Optional[float] = None, + revenue_surprise_percent_gte: Optional[float] = None, + revenue_surprise_percent_lt: Optional[float] = None, + revenue_surprise_percent_lte: Optional[float] = None, + fiscal_year: Optional[int] = None, + fiscal_year_any_of: Optional[str] = None, + fiscal_year_gt: Optional[int] = None, + fiscal_year_gte: Optional[int] = None, + fiscal_year_lt: Optional[int] = None, + fiscal_year_lte: Optional[int] = None, + fiscal_period: Optional[str] = None, + fiscal_period_any_of: Optional[str] = None, + fiscal_period_gt: Optional[str] = None, + fiscal_period_gte: Optional[str] = None, + fiscal_period_lt: Optional[str] = None, + fiscal_period_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[BenzingaEarning], HTTPResponse]: ... + def list_benzinga_earnings( + self, + date: Optional[Union[str, date]] = None, + date_any_of: Optional[str] = None, + date_gt: Optional[Union[str, date]] = None, + date_gte: Optional[Union[str, date]] = None, + date_lt: Optional[Union[str, date]] = None, + date_lte: Optional[Union[str, date]] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + importance: Optional[int] = None, + importance_any_of: Optional[str] = None, + importance_gt: Optional[int] = None, + importance_gte: Optional[int] = None, + importance_lt: Optional[int] = None, + importance_lte: Optional[int] = None, + last_updated: Optional[str] = None, + last_updated_any_of: Optional[str] = None, + last_updated_gt: Optional[str] = None, + last_updated_gte: Optional[str] = None, + last_updated_lt: Optional[str] = None, + last_updated_lte: Optional[str] = None, + date_status: Optional[str] = None, + date_status_any_of: Optional[str] = None, + date_status_gt: Optional[str] = None, + date_status_gte: Optional[str] = None, + date_status_lt: Optional[str] = None, + date_status_lte: Optional[str] = None, + eps_surprise_percent: Optional[float] = None, + eps_surprise_percent_any_of: Optional[str] = None, + eps_surprise_percent_gt: Optional[float] = None, + eps_surprise_percent_gte: Optional[float] = None, + eps_surprise_percent_lt: Optional[float] = None, + eps_surprise_percent_lte: Optional[float] = None, + revenue_surprise_percent: Optional[float] = None, + revenue_surprise_percent_any_of: Optional[str] = None, + revenue_surprise_percent_gt: Optional[float] = None, + revenue_surprise_percent_gte: Optional[float] = None, + revenue_surprise_percent_lt: Optional[float] = None, + revenue_surprise_percent_lte: Optional[float] = None, + fiscal_year: Optional[int] = None, + fiscal_year_any_of: Optional[str] = None, + fiscal_year_gt: Optional[int] = None, + fiscal_year_gte: Optional[int] = None, + fiscal_year_lt: Optional[int] = None, + fiscal_year_lte: Optional[int] = None, + fiscal_period: Optional[str] = None, + fiscal_period_any_of: Optional[str] = None, + fiscal_period_gt: Optional[str] = None, + fiscal_period_gte: Optional[str] = None, + fiscal_period_lt: Optional[str] = None, + fiscal_period_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[BenzingaEarning], HTTPResponse]: + """ + Endpoint: GET /benzinga/v1/earnings + """ + url = "/benzinga/v1/earnings" + return self._paginate( + path=url, + params=self._get_params(self.list_benzinga_earnings, locals()), + raw=raw, + deserializer=BenzingaEarning.from_dict, + options=options, + ) + + @overload + def list_benzinga_firms( + self, + benzinga_id: Optional[str] = None, + benzinga_id_any_of: Optional[str] = None, + benzinga_id_gt: Optional[str] = None, + benzinga_id_gte: Optional[str] = None, + benzinga_id_lt: Optional[str] = None, + benzinga_id_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[BenzingaFirm]: ... + @overload + def list_benzinga_firms( + self, + benzinga_id: Optional[str] = None, + benzinga_id_any_of: Optional[str] = None, + benzinga_id_gt: Optional[str] = None, + benzinga_id_gte: Optional[str] = None, + benzinga_id_lt: Optional[str] = None, + benzinga_id_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_benzinga_firms( + self, + benzinga_id: Optional[str] = None, + benzinga_id_any_of: Optional[str] = None, + benzinga_id_gt: Optional[str] = None, + benzinga_id_gte: Optional[str] = None, + benzinga_id_lt: Optional[str] = None, + benzinga_id_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[BenzingaFirm], HTTPResponse]: ... + def list_benzinga_firms( + self, + benzinga_id: Optional[str] = None, + benzinga_id_any_of: Optional[str] = None, + benzinga_id_gt: Optional[str] = None, + benzinga_id_gte: Optional[str] = None, + benzinga_id_lt: Optional[str] = None, + benzinga_id_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[BenzingaFirm], HTTPResponse]: + """ + Endpoint: GET /benzinga/v1/firms + """ + url = "/benzinga/v1/firms" + return self._paginate( + path=url, + params=self._get_params(self.list_benzinga_firms, locals()), + raw=raw, + deserializer=BenzingaFirm.from_dict, + options=options, + ) + + @overload + def list_benzinga_guidance( + self, + date: Optional[Union[str, date]] = None, + date_any_of: Optional[str] = None, + date_gt: Optional[Union[str, date]] = None, + date_gte: Optional[Union[str, date]] = None, + date_lt: Optional[Union[str, date]] = None, + date_lte: Optional[Union[str, date]] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + positioning: Optional[str] = None, + positioning_any_of: Optional[str] = None, + positioning_gt: Optional[str] = None, + positioning_gte: Optional[str] = None, + positioning_lt: Optional[str] = None, + positioning_lte: Optional[str] = None, + importance: Optional[int] = None, + importance_any_of: Optional[str] = None, + importance_gt: Optional[int] = None, + importance_gte: Optional[int] = None, + importance_lt: Optional[int] = None, + importance_lte: Optional[int] = None, + last_updated: Optional[str] = None, + last_updated_any_of: Optional[str] = None, + last_updated_gt: Optional[str] = None, + last_updated_gte: Optional[str] = None, + last_updated_lt: Optional[str] = None, + last_updated_lte: Optional[str] = None, + fiscal_year: Optional[int] = None, + fiscal_year_any_of: Optional[str] = None, + fiscal_year_gt: Optional[int] = None, + fiscal_year_gte: Optional[int] = None, + fiscal_year_lt: Optional[int] = None, + fiscal_year_lte: Optional[int] = None, + fiscal_period: Optional[str] = None, + fiscal_period_any_of: Optional[str] = None, + fiscal_period_gt: Optional[str] = None, + fiscal_period_gte: Optional[str] = None, + fiscal_period_lt: Optional[str] = None, + fiscal_period_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[BenzingaGuidance]: ... + @overload + def list_benzinga_guidance( + self, + date: Optional[Union[str, date]] = None, + date_any_of: Optional[str] = None, + date_gt: Optional[Union[str, date]] = None, + date_gte: Optional[Union[str, date]] = None, + date_lt: Optional[Union[str, date]] = None, + date_lte: Optional[Union[str, date]] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + positioning: Optional[str] = None, + positioning_any_of: Optional[str] = None, + positioning_gt: Optional[str] = None, + positioning_gte: Optional[str] = None, + positioning_lt: Optional[str] = None, + positioning_lte: Optional[str] = None, + importance: Optional[int] = None, + importance_any_of: Optional[str] = None, + importance_gt: Optional[int] = None, + importance_gte: Optional[int] = None, + importance_lt: Optional[int] = None, + importance_lte: Optional[int] = None, + last_updated: Optional[str] = None, + last_updated_any_of: Optional[str] = None, + last_updated_gt: Optional[str] = None, + last_updated_gte: Optional[str] = None, + last_updated_lt: Optional[str] = None, + last_updated_lte: Optional[str] = None, + fiscal_year: Optional[int] = None, + fiscal_year_any_of: Optional[str] = None, + fiscal_year_gt: Optional[int] = None, + fiscal_year_gte: Optional[int] = None, + fiscal_year_lt: Optional[int] = None, + fiscal_year_lte: Optional[int] = None, + fiscal_period: Optional[str] = None, + fiscal_period_any_of: Optional[str] = None, + fiscal_period_gt: Optional[str] = None, + fiscal_period_gte: Optional[str] = None, + fiscal_period_lt: Optional[str] = None, + fiscal_period_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_benzinga_guidance( self, date: Optional[Union[str, date]] = None, date_any_of: Optional[str] = None, @@ -169,6 +906,12 @@ def list_benzinga_earnings( ticker_gte: Optional[str] = None, ticker_lt: Optional[str] = None, ticker_lte: Optional[str] = None, + positioning: Optional[str] = None, + positioning_any_of: Optional[str] = None, + positioning_gt: Optional[str] = None, + positioning_gte: Optional[str] = None, + positioning_lt: Optional[str] = None, + positioning_lte: Optional[str] = None, importance: Optional[int] = None, importance_any_of: Optional[str] = None, importance_gt: Optional[int] = None, @@ -181,24 +924,6 @@ def list_benzinga_earnings( last_updated_gte: Optional[str] = None, last_updated_lt: Optional[str] = None, last_updated_lte: Optional[str] = None, - date_status: Optional[str] = None, - date_status_any_of: Optional[str] = None, - date_status_gt: Optional[str] = None, - date_status_gte: Optional[str] = None, - date_status_lt: Optional[str] = None, - date_status_lte: Optional[str] = None, - eps_surprise_percent: Optional[float] = None, - eps_surprise_percent_any_of: Optional[str] = None, - eps_surprise_percent_gt: Optional[float] = None, - eps_surprise_percent_gte: Optional[float] = None, - eps_surprise_percent_lt: Optional[float] = None, - eps_surprise_percent_lte: Optional[float] = None, - revenue_surprise_percent: Optional[float] = None, - revenue_surprise_percent_any_of: Optional[str] = None, - revenue_surprise_percent_gt: Optional[float] = None, - revenue_surprise_percent_gte: Optional[float] = None, - revenue_surprise_percent_lt: Optional[float] = None, - revenue_surprise_percent_lte: Optional[float] = None, fiscal_year: Optional[int] = None, fiscal_year_any_of: Optional[str] = None, fiscal_year_gt: Optional[int] = None, @@ -216,45 +941,7 @@ def list_benzinga_earnings( params: Optional[Dict[str, Any]] = None, raw: bool = False, options: Optional[RequestOptionBuilder] = None, - ) -> Union[Iterator[BenzingaEarning], HTTPResponse]: - """ - Endpoint: GET /benzinga/v1/earnings - """ - url = "/benzinga/v1/earnings" - return self._paginate( - path=url, - params=self._get_params(self.list_benzinga_earnings, locals()), - raw=raw, - deserializer=BenzingaEarning.from_dict, - options=options, - ) - - def list_benzinga_firms( - self, - benzinga_id: Optional[str] = None, - benzinga_id_any_of: Optional[str] = None, - benzinga_id_gt: Optional[str] = None, - benzinga_id_gte: Optional[str] = None, - benzinga_id_lt: Optional[str] = None, - benzinga_id_lte: Optional[str] = None, - limit: Optional[int] = None, - sort: Optional[Union[str, Sort]] = None, - params: Optional[Dict[str, Any]] = None, - raw: bool = False, - options: Optional[RequestOptionBuilder] = None, - ) -> Union[Iterator[BenzingaFirm], HTTPResponse]: - """ - Endpoint: GET /benzinga/v1/firms - """ - url = "/benzinga/v1/firms" - return self._paginate( - path=url, - params=self._get_params(self.list_benzinga_firms, locals()), - raw=raw, - deserializer=BenzingaFirm.from_dict, - options=options, - ) - + ) -> Union[Iterator[BenzingaGuidance], HTTPResponse]: ... def list_benzinga_guidance( self, date: Optional[Union[str, date]] = None, @@ -317,6 +1004,115 @@ def list_benzinga_guidance( options=options, ) + @overload + def list_benzinga_news( + self, + published: Optional[str] = None, + published_any_of: Optional[str] = None, + published_gt: Optional[str] = None, + published_gte: Optional[str] = None, + published_lt: Optional[str] = None, + published_lte: Optional[str] = None, + last_updated: Optional[str] = None, + last_updated_any_of: Optional[str] = None, + last_updated_gt: Optional[str] = None, + last_updated_gte: Optional[str] = None, + last_updated_lt: Optional[str] = None, + last_updated_lte: Optional[str] = None, + tickers: Optional[str] = None, + tickers_all_of: Optional[str] = None, + tickers_any_of: Optional[str] = None, + channels: Optional[str] = None, + channels_all_of: Optional[str] = None, + channels_any_of: Optional[str] = None, + tags: Optional[str] = None, + tags_all_of: Optional[str] = None, + tags_any_of: Optional[str] = None, + author: Optional[str] = None, + author_any_of: Optional[str] = None, + author_gt: Optional[str] = None, + author_gte: Optional[str] = None, + author_lt: Optional[str] = None, + author_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[BenzingaNews]: ... + @overload + def list_benzinga_news( + self, + published: Optional[str] = None, + published_any_of: Optional[str] = None, + published_gt: Optional[str] = None, + published_gte: Optional[str] = None, + published_lt: Optional[str] = None, + published_lte: Optional[str] = None, + last_updated: Optional[str] = None, + last_updated_any_of: Optional[str] = None, + last_updated_gt: Optional[str] = None, + last_updated_gte: Optional[str] = None, + last_updated_lt: Optional[str] = None, + last_updated_lte: Optional[str] = None, + tickers: Optional[str] = None, + tickers_all_of: Optional[str] = None, + tickers_any_of: Optional[str] = None, + channels: Optional[str] = None, + channels_all_of: Optional[str] = None, + channels_any_of: Optional[str] = None, + tags: Optional[str] = None, + tags_all_of: Optional[str] = None, + tags_any_of: Optional[str] = None, + author: Optional[str] = None, + author_any_of: Optional[str] = None, + author_gt: Optional[str] = None, + author_gte: Optional[str] = None, + author_lt: Optional[str] = None, + author_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_benzinga_news( + self, + published: Optional[str] = None, + published_any_of: Optional[str] = None, + published_gt: Optional[str] = None, + published_gte: Optional[str] = None, + published_lt: Optional[str] = None, + published_lte: Optional[str] = None, + last_updated: Optional[str] = None, + last_updated_any_of: Optional[str] = None, + last_updated_gt: Optional[str] = None, + last_updated_gte: Optional[str] = None, + last_updated_lt: Optional[str] = None, + last_updated_lte: Optional[str] = None, + tickers: Optional[str] = None, + tickers_all_of: Optional[str] = None, + tickers_any_of: Optional[str] = None, + channels: Optional[str] = None, + channels_all_of: Optional[str] = None, + channels_any_of: Optional[str] = None, + tags: Optional[str] = None, + tags_all_of: Optional[str] = None, + tags_any_of: Optional[str] = None, + author: Optional[str] = None, + author_any_of: Optional[str] = None, + author_gt: Optional[str] = None, + author_gte: Optional[str] = None, + author_lt: Optional[str] = None, + author_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[BenzingaNews], HTTPResponse]: ... def list_benzinga_news( self, published: Optional[str] = None, @@ -364,6 +1160,103 @@ def list_benzinga_news( options=options, ) + @overload + def list_benzinga_news_v2( + self, + published: Optional[str] = None, + published_gt: Optional[str] = None, + published_gte: Optional[str] = None, + published_lt: Optional[str] = None, + published_lte: Optional[str] = None, + channels: Optional[str] = None, + channels_all_of: Optional[str] = None, + channels_any_of: Optional[str] = None, + tags: Optional[str] = None, + tags_all_of: Optional[str] = None, + tags_any_of: Optional[str] = None, + author: Optional[str] = None, + author_any_of: Optional[str] = None, + author_gt: Optional[str] = None, + author_gte: Optional[str] = None, + author_lt: Optional[str] = None, + author_lte: Optional[str] = None, + stocks: Optional[str] = None, + stocks_all_of: Optional[str] = None, + stocks_any_of: Optional[str] = None, + tickers: Optional[str] = None, + tickers_all_of: Optional[str] = None, + tickers_any_of: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[BenzingaNews]: ... + @overload + def list_benzinga_news_v2( + self, + published: Optional[str] = None, + published_gt: Optional[str] = None, + published_gte: Optional[str] = None, + published_lt: Optional[str] = None, + published_lte: Optional[str] = None, + channels: Optional[str] = None, + channels_all_of: Optional[str] = None, + channels_any_of: Optional[str] = None, + tags: Optional[str] = None, + tags_all_of: Optional[str] = None, + tags_any_of: Optional[str] = None, + author: Optional[str] = None, + author_any_of: Optional[str] = None, + author_gt: Optional[str] = None, + author_gte: Optional[str] = None, + author_lt: Optional[str] = None, + author_lte: Optional[str] = None, + stocks: Optional[str] = None, + stocks_all_of: Optional[str] = None, + stocks_any_of: Optional[str] = None, + tickers: Optional[str] = None, + tickers_all_of: Optional[str] = None, + tickers_any_of: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_benzinga_news_v2( + self, + published: Optional[str] = None, + published_gt: Optional[str] = None, + published_gte: Optional[str] = None, + published_lt: Optional[str] = None, + published_lte: Optional[str] = None, + channels: Optional[str] = None, + channels_all_of: Optional[str] = None, + channels_any_of: Optional[str] = None, + tags: Optional[str] = None, + tags_all_of: Optional[str] = None, + tags_any_of: Optional[str] = None, + author: Optional[str] = None, + author_any_of: Optional[str] = None, + author_gt: Optional[str] = None, + author_gte: Optional[str] = None, + author_lt: Optional[str] = None, + author_lte: Optional[str] = None, + stocks: Optional[str] = None, + stocks_all_of: Optional[str] = None, + stocks_any_of: Optional[str] = None, + tickers: Optional[str] = None, + tickers_all_of: Optional[str] = None, + tickers_any_of: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[BenzingaNews], HTTPResponse]: ... def list_benzinga_news_v2( self, published: Optional[str] = None, @@ -407,6 +1300,196 @@ def list_benzinga_news_v2( options=options, ) + @overload + def list_benzinga_ratings( + self, + date: Optional[Union[str, date]] = None, + date_any_of: Optional[str] = None, + date_gt: Optional[Union[str, date]] = None, + date_gte: Optional[Union[str, date]] = None, + date_lt: Optional[Union[str, date]] = None, + date_lte: Optional[Union[str, date]] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + importance: Optional[int] = None, + importance_any_of: Optional[str] = None, + importance_gt: Optional[int] = None, + importance_gte: Optional[int] = None, + importance_lt: Optional[int] = None, + importance_lte: Optional[int] = None, + last_updated: Optional[str] = None, + last_updated_any_of: Optional[str] = None, + last_updated_gt: Optional[str] = None, + last_updated_gte: Optional[str] = None, + last_updated_lt: Optional[str] = None, + last_updated_lte: Optional[str] = None, + rating_action: Optional[str] = None, + rating_action_any_of: Optional[str] = None, + rating_action_gt: Optional[str] = None, + rating_action_gte: Optional[str] = None, + rating_action_lt: Optional[str] = None, + rating_action_lte: Optional[str] = None, + price_target_action: Optional[str] = None, + price_target_action_any_of: Optional[str] = None, + price_target_action_gt: Optional[str] = None, + price_target_action_gte: Optional[str] = None, + price_target_action_lt: Optional[str] = None, + price_target_action_lte: Optional[str] = None, + benzinga_id: Optional[str] = None, + benzinga_id_any_of: Optional[str] = None, + benzinga_id_gt: Optional[str] = None, + benzinga_id_gte: Optional[str] = None, + benzinga_id_lt: Optional[str] = None, + benzinga_id_lte: Optional[str] = None, + benzinga_analyst_id: Optional[str] = None, + benzinga_analyst_id_any_of: Optional[str] = None, + benzinga_analyst_id_gt: Optional[str] = None, + benzinga_analyst_id_gte: Optional[str] = None, + benzinga_analyst_id_lt: Optional[str] = None, + benzinga_analyst_id_lte: Optional[str] = None, + benzinga_firm_id: Optional[str] = None, + benzinga_firm_id_any_of: Optional[str] = None, + benzinga_firm_id_gt: Optional[str] = None, + benzinga_firm_id_gte: Optional[str] = None, + benzinga_firm_id_lt: Optional[str] = None, + benzinga_firm_id_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[BenzingaRating]: ... + @overload + def list_benzinga_ratings( + self, + date: Optional[Union[str, date]] = None, + date_any_of: Optional[str] = None, + date_gt: Optional[Union[str, date]] = None, + date_gte: Optional[Union[str, date]] = None, + date_lt: Optional[Union[str, date]] = None, + date_lte: Optional[Union[str, date]] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + importance: Optional[int] = None, + importance_any_of: Optional[str] = None, + importance_gt: Optional[int] = None, + importance_gte: Optional[int] = None, + importance_lt: Optional[int] = None, + importance_lte: Optional[int] = None, + last_updated: Optional[str] = None, + last_updated_any_of: Optional[str] = None, + last_updated_gt: Optional[str] = None, + last_updated_gte: Optional[str] = None, + last_updated_lt: Optional[str] = None, + last_updated_lte: Optional[str] = None, + rating_action: Optional[str] = None, + rating_action_any_of: Optional[str] = None, + rating_action_gt: Optional[str] = None, + rating_action_gte: Optional[str] = None, + rating_action_lt: Optional[str] = None, + rating_action_lte: Optional[str] = None, + price_target_action: Optional[str] = None, + price_target_action_any_of: Optional[str] = None, + price_target_action_gt: Optional[str] = None, + price_target_action_gte: Optional[str] = None, + price_target_action_lt: Optional[str] = None, + price_target_action_lte: Optional[str] = None, + benzinga_id: Optional[str] = None, + benzinga_id_any_of: Optional[str] = None, + benzinga_id_gt: Optional[str] = None, + benzinga_id_gte: Optional[str] = None, + benzinga_id_lt: Optional[str] = None, + benzinga_id_lte: Optional[str] = None, + benzinga_analyst_id: Optional[str] = None, + benzinga_analyst_id_any_of: Optional[str] = None, + benzinga_analyst_id_gt: Optional[str] = None, + benzinga_analyst_id_gte: Optional[str] = None, + benzinga_analyst_id_lt: Optional[str] = None, + benzinga_analyst_id_lte: Optional[str] = None, + benzinga_firm_id: Optional[str] = None, + benzinga_firm_id_any_of: Optional[str] = None, + benzinga_firm_id_gt: Optional[str] = None, + benzinga_firm_id_gte: Optional[str] = None, + benzinga_firm_id_lt: Optional[str] = None, + benzinga_firm_id_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_benzinga_ratings( + self, + date: Optional[Union[str, date]] = None, + date_any_of: Optional[str] = None, + date_gt: Optional[Union[str, date]] = None, + date_gte: Optional[Union[str, date]] = None, + date_lt: Optional[Union[str, date]] = None, + date_lte: Optional[Union[str, date]] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + importance: Optional[int] = None, + importance_any_of: Optional[str] = None, + importance_gt: Optional[int] = None, + importance_gte: Optional[int] = None, + importance_lt: Optional[int] = None, + importance_lte: Optional[int] = None, + last_updated: Optional[str] = None, + last_updated_any_of: Optional[str] = None, + last_updated_gt: Optional[str] = None, + last_updated_gte: Optional[str] = None, + last_updated_lt: Optional[str] = None, + last_updated_lte: Optional[str] = None, + rating_action: Optional[str] = None, + rating_action_any_of: Optional[str] = None, + rating_action_gt: Optional[str] = None, + rating_action_gte: Optional[str] = None, + rating_action_lt: Optional[str] = None, + rating_action_lte: Optional[str] = None, + price_target_action: Optional[str] = None, + price_target_action_any_of: Optional[str] = None, + price_target_action_gt: Optional[str] = None, + price_target_action_gte: Optional[str] = None, + price_target_action_lt: Optional[str] = None, + price_target_action_lte: Optional[str] = None, + benzinga_id: Optional[str] = None, + benzinga_id_any_of: Optional[str] = None, + benzinga_id_gt: Optional[str] = None, + benzinga_id_gte: Optional[str] = None, + benzinga_id_lt: Optional[str] = None, + benzinga_id_lte: Optional[str] = None, + benzinga_analyst_id: Optional[str] = None, + benzinga_analyst_id_any_of: Optional[str] = None, + benzinga_analyst_id_gt: Optional[str] = None, + benzinga_analyst_id_gte: Optional[str] = None, + benzinga_analyst_id_lt: Optional[str] = None, + benzinga_analyst_id_lte: Optional[str] = None, + benzinga_firm_id: Optional[str] = None, + benzinga_firm_id_any_of: Optional[str] = None, + benzinga_firm_id_gt: Optional[str] = None, + benzinga_firm_id_gte: Optional[str] = None, + benzinga_firm_id_lt: Optional[str] = None, + benzinga_firm_id_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[BenzingaRating], HTTPResponse]: ... def list_benzinga_ratings( self, date: Optional[Union[str, date]] = None, @@ -481,6 +1564,85 @@ def list_benzinga_ratings( options=options, ) + @overload + def list_benzinga_bulls_bears_say( + self, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + benzinga_id: Optional[str] = None, + benzinga_id_any_of: Optional[str] = None, + benzinga_id_gt: Optional[str] = None, + benzinga_id_gte: Optional[str] = None, + benzinga_id_lt: Optional[str] = None, + benzinga_id_lte: Optional[str] = None, + last_updated: Optional[str] = None, + last_updated_gt: Optional[str] = None, + last_updated_gte: Optional[str] = None, + last_updated_lt: Optional[str] = None, + last_updated_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[BenzingaBullsBearsSay]: ... + @overload + def list_benzinga_bulls_bears_say( + self, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + benzinga_id: Optional[str] = None, + benzinga_id_any_of: Optional[str] = None, + benzinga_id_gt: Optional[str] = None, + benzinga_id_gte: Optional[str] = None, + benzinga_id_lt: Optional[str] = None, + benzinga_id_lte: Optional[str] = None, + last_updated: Optional[str] = None, + last_updated_gt: Optional[str] = None, + last_updated_gte: Optional[str] = None, + last_updated_lt: Optional[str] = None, + last_updated_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_benzinga_bulls_bears_say( + self, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + benzinga_id: Optional[str] = None, + benzinga_id_any_of: Optional[str] = None, + benzinga_id_gt: Optional[str] = None, + benzinga_id_gte: Optional[str] = None, + benzinga_id_lt: Optional[str] = None, + benzinga_id_lte: Optional[str] = None, + last_updated: Optional[str] = None, + last_updated_gt: Optional[str] = None, + last_updated_gte: Optional[str] = None, + last_updated_lt: Optional[str] = None, + last_updated_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[BenzingaBullsBearsSay], HTTPResponse]: ... def list_benzinga_bulls_bears_say( self, ticker: Optional[str] = None, diff --git a/massive/rest/economy.py b/massive/rest/economy.py index 7ba52d88..e4cafa31 100644 --- a/massive/rest/economy.py +++ b/massive/rest/economy.py @@ -1,4 +1,4 @@ -from typing import Optional, Any, Dict, List, Union, Iterator +from typing import Optional, Any, Dict, List, Union, Iterator, Literal, overload from urllib3 import HTTPResponse from datetime import datetime, date @@ -21,6 +21,55 @@ class EconomyClient(BaseClient): (aligned with the paths from /fed/v1/...) """ + @overload + def list_treasury_yields( + self, + date: Optional[str] = None, + date_any_of: Optional[str] = None, + date_gt: Optional[str] = None, + date_gte: Optional[str] = None, + date_lt: Optional[str] = None, + date_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[TreasuryYield]: ... + @overload + def list_treasury_yields( + self, + date: Optional[str] = None, + date_any_of: Optional[str] = None, + date_gt: Optional[str] = None, + date_gte: Optional[str] = None, + date_lt: Optional[str] = None, + date_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None + ) -> HTTPResponse: ... + @overload + def list_treasury_yields( + self, + date: Optional[str] = None, + date_any_of: Optional[str] = None, + date_gt: Optional[str] = None, + date_gte: Optional[str] = None, + date_lt: Optional[str] = None, + date_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[TreasuryYield], HTTPResponse]: ... def list_treasury_yields( self, date: Optional[str] = None, @@ -64,6 +113,52 @@ def list_treasury_yields( options=options, ) + @overload + def list_inflation( + self, + date: Optional[Union[str, date]] = None, + date_any_of: Optional[str] = None, + date_gt: Optional[Union[str, date]] = None, + date_gte: Optional[Union[str, date]] = None, + date_lt: Optional[Union[str, date]] = None, + date_lte: Optional[Union[str, date]] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[FedInflation]: ... + @overload + def list_inflation( + self, + date: Optional[Union[str, date]] = None, + date_any_of: Optional[str] = None, + date_gt: Optional[Union[str, date]] = None, + date_gte: Optional[Union[str, date]] = None, + date_lt: Optional[Union[str, date]] = None, + date_lte: Optional[Union[str, date]] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None + ) -> HTTPResponse: ... + @overload + def list_inflation( + self, + date: Optional[Union[str, date]] = None, + date_any_of: Optional[str] = None, + date_gt: Optional[Union[str, date]] = None, + date_gte: Optional[Union[str, date]] = None, + date_lt: Optional[Union[str, date]] = None, + date_lte: Optional[Union[str, date]] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[FedInflation], HTTPResponse]: ... def list_inflation( self, date: Optional[Union[str, date]] = None, @@ -90,6 +185,52 @@ def list_inflation( options=options, ) + @overload + def list_inflation_expectations( + self, + date: Optional[Union[str, date]] = None, + date_any_of: Optional[str] = None, + date_gt: Optional[Union[str, date]] = None, + date_gte: Optional[Union[str, date]] = None, + date_lt: Optional[Union[str, date]] = None, + date_lte: Optional[Union[str, date]] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[FedInflationExpectations]: ... + @overload + def list_inflation_expectations( + self, + date: Optional[Union[str, date]] = None, + date_any_of: Optional[str] = None, + date_gt: Optional[Union[str, date]] = None, + date_gte: Optional[Union[str, date]] = None, + date_lt: Optional[Union[str, date]] = None, + date_lte: Optional[Union[str, date]] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None + ) -> HTTPResponse: ... + @overload + def list_inflation_expectations( + self, + date: Optional[Union[str, date]] = None, + date_any_of: Optional[str] = None, + date_gt: Optional[Union[str, date]] = None, + date_gte: Optional[Union[str, date]] = None, + date_lt: Optional[Union[str, date]] = None, + date_lte: Optional[Union[str, date]] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[FedInflationExpectations], HTTPResponse]: ... def list_inflation_expectations( self, date: Optional[Union[str, date]] = None, @@ -131,6 +272,52 @@ def list_inflation_expectations( options=options, ) + @overload + def list_labor_market_indicators( + self, + date: Optional[str] = None, + date_any_of: Optional[str] = None, + date_gt: Optional[str] = None, + date_gte: Optional[str] = None, + date_lt: Optional[str] = None, + date_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[FedLaborMarket]: ... + @overload + def list_labor_market_indicators( + self, + date: Optional[str] = None, + date_any_of: Optional[str] = None, + date_gt: Optional[str] = None, + date_gte: Optional[str] = None, + date_lt: Optional[str] = None, + date_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None + ) -> HTTPResponse: ... + @overload + def list_labor_market_indicators( + self, + date: Optional[str] = None, + date_any_of: Optional[str] = None, + date_gt: Optional[str] = None, + date_gte: Optional[str] = None, + date_lt: Optional[str] = None, + date_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[FedLaborMarket], HTTPResponse]: ... def list_labor_market_indicators( self, date: Optional[str] = None, @@ -171,6 +358,103 @@ def list_labor_market_indicators( options=options, ) + @overload + def list_eu_merchant_aggregates( + self, + transaction_date: Optional[Union[str, date]] = None, + transaction_date_gt: Optional[Union[str, date]] = None, + transaction_date_gte: Optional[Union[str, date]] = None, + transaction_date_lt: Optional[Union[str, date]] = None, + transaction_date_lte: Optional[Union[str, date]] = None, + name: Optional[str] = None, + name_any_of: Optional[str] = None, + name_gt: Optional[str] = None, + name_gte: Optional[str] = None, + name_lt: Optional[str] = None, + name_lte: Optional[str] = None, + user_country: Optional[str] = None, + user_country_any_of: Optional[str] = None, + channel: Optional[str] = None, + channel_any_of: Optional[str] = None, + consumer_type: Optional[str] = None, + consumer_type_any_of: Optional[str] = None, + parent_name: Optional[str] = None, + parent_name_any_of: Optional[str] = None, + parent_name_gt: Optional[str] = None, + parent_name_gte: Optional[str] = None, + parent_name_lt: Optional[str] = None, + parent_name_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[EUMerchantAggregate]: ... + @overload + def list_eu_merchant_aggregates( + self, + transaction_date: Optional[Union[str, date]] = None, + transaction_date_gt: Optional[Union[str, date]] = None, + transaction_date_gte: Optional[Union[str, date]] = None, + transaction_date_lt: Optional[Union[str, date]] = None, + transaction_date_lte: Optional[Union[str, date]] = None, + name: Optional[str] = None, + name_any_of: Optional[str] = None, + name_gt: Optional[str] = None, + name_gte: Optional[str] = None, + name_lt: Optional[str] = None, + name_lte: Optional[str] = None, + user_country: Optional[str] = None, + user_country_any_of: Optional[str] = None, + channel: Optional[str] = None, + channel_any_of: Optional[str] = None, + consumer_type: Optional[str] = None, + consumer_type_any_of: Optional[str] = None, + parent_name: Optional[str] = None, + parent_name_any_of: Optional[str] = None, + parent_name_gt: Optional[str] = None, + parent_name_gte: Optional[str] = None, + parent_name_lt: Optional[str] = None, + parent_name_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None + ) -> HTTPResponse: ... + @overload + def list_eu_merchant_aggregates( + self, + transaction_date: Optional[Union[str, date]] = None, + transaction_date_gt: Optional[Union[str, date]] = None, + transaction_date_gte: Optional[Union[str, date]] = None, + transaction_date_lt: Optional[Union[str, date]] = None, + transaction_date_lte: Optional[Union[str, date]] = None, + name: Optional[str] = None, + name_any_of: Optional[str] = None, + name_gt: Optional[str] = None, + name_gte: Optional[str] = None, + name_lt: Optional[str] = None, + name_lte: Optional[str] = None, + user_country: Optional[str] = None, + user_country_any_of: Optional[str] = None, + channel: Optional[str] = None, + channel_any_of: Optional[str] = None, + consumer_type: Optional[str] = None, + consumer_type_any_of: Optional[str] = None, + parent_name: Optional[str] = None, + parent_name_any_of: Optional[str] = None, + parent_name_gt: Optional[str] = None, + parent_name_gte: Optional[str] = None, + parent_name_lt: Optional[str] = None, + parent_name_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[EUMerchantAggregate], HTTPResponse]: ... def list_eu_merchant_aggregates( self, transaction_date: Optional[Union[str, date]] = None, @@ -221,6 +505,106 @@ def list_eu_merchant_aggregates( options=options, ) + @overload + def list_eu_merchant_hierarchy( + self, + lookup_name: Optional[str] = None, + lookup_name_any_of: Optional[str] = None, + lookup_name_gt: Optional[str] = None, + lookup_name_gte: Optional[str] = None, + lookup_name_lt: Optional[str] = None, + lookup_name_lte: Optional[str] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + listing_status: Optional[str] = None, + listing_status_any_of: Optional[str] = None, + active_from: Optional[Union[str, date]] = None, + active_from_gt: Optional[Union[str, date]] = None, + active_from_gte: Optional[Union[str, date]] = None, + active_from_lt: Optional[Union[str, date]] = None, + active_from_lte: Optional[Union[str, date]] = None, + active_to: Optional[Union[str, date]] = None, + active_to_gt: Optional[Union[str, date]] = None, + active_to_gte: Optional[Union[str, date]] = None, + active_to_lt: Optional[Union[str, date]] = None, + active_to_lte: Optional[Union[str, date]] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[EUMerchantHierarchy]: ... + @overload + def list_eu_merchant_hierarchy( + self, + lookup_name: Optional[str] = None, + lookup_name_any_of: Optional[str] = None, + lookup_name_gt: Optional[str] = None, + lookup_name_gte: Optional[str] = None, + lookup_name_lt: Optional[str] = None, + lookup_name_lte: Optional[str] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + listing_status: Optional[str] = None, + listing_status_any_of: Optional[str] = None, + active_from: Optional[Union[str, date]] = None, + active_from_gt: Optional[Union[str, date]] = None, + active_from_gte: Optional[Union[str, date]] = None, + active_from_lt: Optional[Union[str, date]] = None, + active_from_lte: Optional[Union[str, date]] = None, + active_to: Optional[Union[str, date]] = None, + active_to_gt: Optional[Union[str, date]] = None, + active_to_gte: Optional[Union[str, date]] = None, + active_to_lt: Optional[Union[str, date]] = None, + active_to_lte: Optional[Union[str, date]] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None + ) -> HTTPResponse: ... + @overload + def list_eu_merchant_hierarchy( + self, + lookup_name: Optional[str] = None, + lookup_name_any_of: Optional[str] = None, + lookup_name_gt: Optional[str] = None, + lookup_name_gte: Optional[str] = None, + lookup_name_lt: Optional[str] = None, + lookup_name_lte: Optional[str] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + listing_status: Optional[str] = None, + listing_status_any_of: Optional[str] = None, + active_from: Optional[Union[str, date]] = None, + active_from_gt: Optional[Union[str, date]] = None, + active_from_gte: Optional[Union[str, date]] = None, + active_from_lt: Optional[Union[str, date]] = None, + active_from_lte: Optional[Union[str, date]] = None, + active_to: Optional[Union[str, date]] = None, + active_to_gt: Optional[Union[str, date]] = None, + active_to_gte: Optional[Union[str, date]] = None, + active_to_lt: Optional[Union[str, date]] = None, + active_to_lte: Optional[Union[str, date]] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[EUMerchantHierarchy], HTTPResponse]: ... def list_eu_merchant_hierarchy( self, lookup_name: Optional[str] = None, diff --git a/massive/rest/etf_global.py b/massive/rest/etf_global.py index 9da19539..ac3360a7 100644 --- a/massive/rest/etf_global.py +++ b/massive/rest/etf_global.py @@ -1,4 +1,4 @@ -from typing import Optional, Any, Dict, List, Union, Iterator +from typing import Optional, Any, Dict, List, Union, Iterator, Literal, overload from urllib3 import HTTPResponse from datetime import datetime, date @@ -20,6 +20,7 @@ class EtfGlobalClient(BaseClient): (aligned with the paths from /etf-global/v1/...) """ + @overload def get_etf_global_analytics( self, composite_ticker: Optional[str] = None, @@ -92,21 +93,415 @@ def get_etf_global_analytics( limit: Optional[int] = None, sort: Optional[Union[str, Sort]] = None, params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[EtfGlobalAnalytics]: ... + @overload + def get_etf_global_analytics( + self, + composite_ticker: Optional[str] = None, + composite_ticker_any_of: Optional[str] = None, + composite_ticker_gt: Optional[str] = None, + composite_ticker_gte: Optional[str] = None, + composite_ticker_lt: Optional[str] = None, + composite_ticker_lte: Optional[str] = None, + processed_date: Optional[Union[str, date]] = None, + processed_date_gt: Optional[Union[str, date]] = None, + processed_date_gte: Optional[Union[str, date]] = None, + processed_date_lt: Optional[Union[str, date]] = None, + processed_date_lte: Optional[Union[str, date]] = None, + effective_date: Optional[Union[str, date]] = None, + effective_date_gt: Optional[Union[str, date]] = None, + effective_date_gte: Optional[Union[str, date]] = None, + effective_date_lt: Optional[Union[str, date]] = None, + effective_date_lte: Optional[Union[str, date]] = None, + risk_total_score: Optional[float] = None, + risk_total_score_gt: Optional[float] = None, + risk_total_score_gte: Optional[float] = None, + risk_total_score_lt: Optional[float] = None, + risk_total_score_lte: Optional[float] = None, + reward_score: Optional[float] = None, + reward_score_gt: Optional[float] = None, + reward_score_gte: Optional[float] = None, + reward_score_lt: Optional[float] = None, + reward_score_lte: Optional[float] = None, + quant_total_score: Optional[float] = None, + quant_total_score_gt: Optional[float] = None, + quant_total_score_gte: Optional[float] = None, + quant_total_score_lt: Optional[float] = None, + quant_total_score_lte: Optional[float] = None, + quant_grade: Optional[str] = None, + quant_grade_any_of: Optional[str] = None, + quant_grade_gt: Optional[str] = None, + quant_grade_gte: Optional[str] = None, + quant_grade_lt: Optional[str] = None, + quant_grade_lte: Optional[str] = None, + quant_composite_technical: Optional[float] = None, + quant_composite_technical_gt: Optional[float] = None, + quant_composite_technical_gte: Optional[float] = None, + quant_composite_technical_lt: Optional[float] = None, + quant_composite_technical_lte: Optional[float] = None, + quant_composite_sentiment: Optional[float] = None, + quant_composite_sentiment_gt: Optional[float] = None, + quant_composite_sentiment_gte: Optional[float] = None, + quant_composite_sentiment_lt: Optional[float] = None, + quant_composite_sentiment_lte: Optional[float] = None, + quant_composite_behavioral: Optional[float] = None, + quant_composite_behavioral_gt: Optional[float] = None, + quant_composite_behavioral_gte: Optional[float] = None, + quant_composite_behavioral_lt: Optional[float] = None, + quant_composite_behavioral_lte: Optional[float] = None, + quant_composite_fundamental: Optional[float] = None, + quant_composite_fundamental_gt: Optional[float] = None, + quant_composite_fundamental_gte: Optional[float] = None, + quant_composite_fundamental_lt: Optional[float] = None, + quant_composite_fundamental_lte: Optional[float] = None, + quant_composite_global: Optional[float] = None, + quant_composite_global_gt: Optional[float] = None, + quant_composite_global_gte: Optional[float] = None, + quant_composite_global_lt: Optional[float] = None, + quant_composite_global_lte: Optional[float] = None, + quant_composite_quality: Optional[float] = None, + quant_composite_quality_gt: Optional[float] = None, + quant_composite_quality_gte: Optional[float] = None, + quant_composite_quality_lt: Optional[float] = None, + quant_composite_quality_lte: Optional[float] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None + ) -> HTTPResponse: ... + @overload + def get_etf_global_analytics( + self, + composite_ticker: Optional[str] = None, + composite_ticker_any_of: Optional[str] = None, + composite_ticker_gt: Optional[str] = None, + composite_ticker_gte: Optional[str] = None, + composite_ticker_lt: Optional[str] = None, + composite_ticker_lte: Optional[str] = None, + processed_date: Optional[Union[str, date]] = None, + processed_date_gt: Optional[Union[str, date]] = None, + processed_date_gte: Optional[Union[str, date]] = None, + processed_date_lt: Optional[Union[str, date]] = None, + processed_date_lte: Optional[Union[str, date]] = None, + effective_date: Optional[Union[str, date]] = None, + effective_date_gt: Optional[Union[str, date]] = None, + effective_date_gte: Optional[Union[str, date]] = None, + effective_date_lt: Optional[Union[str, date]] = None, + effective_date_lte: Optional[Union[str, date]] = None, + risk_total_score: Optional[float] = None, + risk_total_score_gt: Optional[float] = None, + risk_total_score_gte: Optional[float] = None, + risk_total_score_lt: Optional[float] = None, + risk_total_score_lte: Optional[float] = None, + reward_score: Optional[float] = None, + reward_score_gt: Optional[float] = None, + reward_score_gte: Optional[float] = None, + reward_score_lt: Optional[float] = None, + reward_score_lte: Optional[float] = None, + quant_total_score: Optional[float] = None, + quant_total_score_gt: Optional[float] = None, + quant_total_score_gte: Optional[float] = None, + quant_total_score_lt: Optional[float] = None, + quant_total_score_lte: Optional[float] = None, + quant_grade: Optional[str] = None, + quant_grade_any_of: Optional[str] = None, + quant_grade_gt: Optional[str] = None, + quant_grade_gte: Optional[str] = None, + quant_grade_lt: Optional[str] = None, + quant_grade_lte: Optional[str] = None, + quant_composite_technical: Optional[float] = None, + quant_composite_technical_gt: Optional[float] = None, + quant_composite_technical_gte: Optional[float] = None, + quant_composite_technical_lt: Optional[float] = None, + quant_composite_technical_lte: Optional[float] = None, + quant_composite_sentiment: Optional[float] = None, + quant_composite_sentiment_gt: Optional[float] = None, + quant_composite_sentiment_gte: Optional[float] = None, + quant_composite_sentiment_lt: Optional[float] = None, + quant_composite_sentiment_lte: Optional[float] = None, + quant_composite_behavioral: Optional[float] = None, + quant_composite_behavioral_gt: Optional[float] = None, + quant_composite_behavioral_gte: Optional[float] = None, + quant_composite_behavioral_lt: Optional[float] = None, + quant_composite_behavioral_lte: Optional[float] = None, + quant_composite_fundamental: Optional[float] = None, + quant_composite_fundamental_gt: Optional[float] = None, + quant_composite_fundamental_gte: Optional[float] = None, + quant_composite_fundamental_lt: Optional[float] = None, + quant_composite_fundamental_lte: Optional[float] = None, + quant_composite_global: Optional[float] = None, + quant_composite_global_gt: Optional[float] = None, + quant_composite_global_gte: Optional[float] = None, + quant_composite_global_lt: Optional[float] = None, + quant_composite_global_lte: Optional[float] = None, + quant_composite_quality: Optional[float] = None, + quant_composite_quality_gt: Optional[float] = None, + quant_composite_quality_gte: Optional[float] = None, + quant_composite_quality_lt: Optional[float] = None, + quant_composite_quality_lte: Optional[float] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[EtfGlobalAnalytics], HTTPResponse]: ... + def get_etf_global_analytics( + self, + composite_ticker: Optional[str] = None, + composite_ticker_any_of: Optional[str] = None, + composite_ticker_gt: Optional[str] = None, + composite_ticker_gte: Optional[str] = None, + composite_ticker_lt: Optional[str] = None, + composite_ticker_lte: Optional[str] = None, + processed_date: Optional[Union[str, date]] = None, + processed_date_gt: Optional[Union[str, date]] = None, + processed_date_gte: Optional[Union[str, date]] = None, + processed_date_lt: Optional[Union[str, date]] = None, + processed_date_lte: Optional[Union[str, date]] = None, + effective_date: Optional[Union[str, date]] = None, + effective_date_gt: Optional[Union[str, date]] = None, + effective_date_gte: Optional[Union[str, date]] = None, + effective_date_lt: Optional[Union[str, date]] = None, + effective_date_lte: Optional[Union[str, date]] = None, + risk_total_score: Optional[float] = None, + risk_total_score_gt: Optional[float] = None, + risk_total_score_gte: Optional[float] = None, + risk_total_score_lt: Optional[float] = None, + risk_total_score_lte: Optional[float] = None, + reward_score: Optional[float] = None, + reward_score_gt: Optional[float] = None, + reward_score_gte: Optional[float] = None, + reward_score_lt: Optional[float] = None, + reward_score_lte: Optional[float] = None, + quant_total_score: Optional[float] = None, + quant_total_score_gt: Optional[float] = None, + quant_total_score_gte: Optional[float] = None, + quant_total_score_lt: Optional[float] = None, + quant_total_score_lte: Optional[float] = None, + quant_grade: Optional[str] = None, + quant_grade_any_of: Optional[str] = None, + quant_grade_gt: Optional[str] = None, + quant_grade_gte: Optional[str] = None, + quant_grade_lt: Optional[str] = None, + quant_grade_lte: Optional[str] = None, + quant_composite_technical: Optional[float] = None, + quant_composite_technical_gt: Optional[float] = None, + quant_composite_technical_gte: Optional[float] = None, + quant_composite_technical_lt: Optional[float] = None, + quant_composite_technical_lte: Optional[float] = None, + quant_composite_sentiment: Optional[float] = None, + quant_composite_sentiment_gt: Optional[float] = None, + quant_composite_sentiment_gte: Optional[float] = None, + quant_composite_sentiment_lt: Optional[float] = None, + quant_composite_sentiment_lte: Optional[float] = None, + quant_composite_behavioral: Optional[float] = None, + quant_composite_behavioral_gt: Optional[float] = None, + quant_composite_behavioral_gte: Optional[float] = None, + quant_composite_behavioral_lt: Optional[float] = None, + quant_composite_behavioral_lte: Optional[float] = None, + quant_composite_fundamental: Optional[float] = None, + quant_composite_fundamental_gt: Optional[float] = None, + quant_composite_fundamental_gte: Optional[float] = None, + quant_composite_fundamental_lt: Optional[float] = None, + quant_composite_fundamental_lte: Optional[float] = None, + quant_composite_global: Optional[float] = None, + quant_composite_global_gt: Optional[float] = None, + quant_composite_global_gte: Optional[float] = None, + quant_composite_global_lt: Optional[float] = None, + quant_composite_global_lte: Optional[float] = None, + quant_composite_quality: Optional[float] = None, + quant_composite_quality_gt: Optional[float] = None, + quant_composite_quality_gte: Optional[float] = None, + quant_composite_quality_lt: Optional[float] = None, + quant_composite_quality_lte: Optional[float] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[EtfGlobalAnalytics], HTTPResponse]: + """ + Endpoint: GET /etf-global/v1/analytics + """ + url = "/etf-global/v1/analytics" + return self._paginate( + path=url, + params=self._get_params(self.get_etf_global_analytics, locals()), + raw=raw, + deserializer=EtfGlobalAnalytics.from_dict, + options=options, + ) + + @overload + def get_etf_global_constituents( + self, + composite_ticker: Optional[str] = None, + composite_ticker_any_of: Optional[str] = None, + composite_ticker_gt: Optional[str] = None, + composite_ticker_gte: Optional[str] = None, + composite_ticker_lt: Optional[str] = None, + composite_ticker_lte: Optional[str] = None, + constituent_ticker: Optional[str] = None, + constituent_ticker_any_of: Optional[str] = None, + constituent_ticker_gt: Optional[str] = None, + constituent_ticker_gte: Optional[str] = None, + constituent_ticker_lt: Optional[str] = None, + constituent_ticker_lte: Optional[str] = None, + effective_date: Optional[Union[str, date]] = None, + effective_date_gt: Optional[Union[str, date]] = None, + effective_date_gte: Optional[Union[str, date]] = None, + effective_date_lt: Optional[Union[str, date]] = None, + effective_date_lte: Optional[Union[str, date]] = None, + processed_date: Optional[Union[str, date]] = None, + processed_date_gt: Optional[Union[str, date]] = None, + processed_date_gte: Optional[Union[str, date]] = None, + processed_date_lt: Optional[Union[str, date]] = None, + processed_date_lte: Optional[Union[str, date]] = None, + us_code: Optional[str] = None, + us_code_any_of: Optional[str] = None, + us_code_gt: Optional[str] = None, + us_code_gte: Optional[str] = None, + us_code_lt: Optional[str] = None, + us_code_lte: Optional[str] = None, + isin: Optional[str] = None, + isin_any_of: Optional[str] = None, + isin_gt: Optional[str] = None, + isin_gte: Optional[str] = None, + isin_lt: Optional[str] = None, + isin_lte: Optional[str] = None, + figi: Optional[str] = None, + figi_any_of: Optional[str] = None, + figi_gt: Optional[str] = None, + figi_gte: Optional[str] = None, + figi_lt: Optional[str] = None, + figi_lte: Optional[str] = None, + sedol: Optional[str] = None, + sedol_any_of: Optional[str] = None, + sedol_gt: Optional[str] = None, + sedol_gte: Optional[str] = None, + sedol_lt: Optional[str] = None, + sedol_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[EtfGlobalConstituent]: ... + @overload + def get_etf_global_constituents( + self, + composite_ticker: Optional[str] = None, + composite_ticker_any_of: Optional[str] = None, + composite_ticker_gt: Optional[str] = None, + composite_ticker_gte: Optional[str] = None, + composite_ticker_lt: Optional[str] = None, + composite_ticker_lte: Optional[str] = None, + constituent_ticker: Optional[str] = None, + constituent_ticker_any_of: Optional[str] = None, + constituent_ticker_gt: Optional[str] = None, + constituent_ticker_gte: Optional[str] = None, + constituent_ticker_lt: Optional[str] = None, + constituent_ticker_lte: Optional[str] = None, + effective_date: Optional[Union[str, date]] = None, + effective_date_gt: Optional[Union[str, date]] = None, + effective_date_gte: Optional[Union[str, date]] = None, + effective_date_lt: Optional[Union[str, date]] = None, + effective_date_lte: Optional[Union[str, date]] = None, + processed_date: Optional[Union[str, date]] = None, + processed_date_gt: Optional[Union[str, date]] = None, + processed_date_gte: Optional[Union[str, date]] = None, + processed_date_lt: Optional[Union[str, date]] = None, + processed_date_lte: Optional[Union[str, date]] = None, + us_code: Optional[str] = None, + us_code_any_of: Optional[str] = None, + us_code_gt: Optional[str] = None, + us_code_gte: Optional[str] = None, + us_code_lt: Optional[str] = None, + us_code_lte: Optional[str] = None, + isin: Optional[str] = None, + isin_any_of: Optional[str] = None, + isin_gt: Optional[str] = None, + isin_gte: Optional[str] = None, + isin_lt: Optional[str] = None, + isin_lte: Optional[str] = None, + figi: Optional[str] = None, + figi_any_of: Optional[str] = None, + figi_gt: Optional[str] = None, + figi_gte: Optional[str] = None, + figi_lt: Optional[str] = None, + figi_lte: Optional[str] = None, + sedol: Optional[str] = None, + sedol_any_of: Optional[str] = None, + sedol_gt: Optional[str] = None, + sedol_gte: Optional[str] = None, + sedol_lt: Optional[str] = None, + sedol_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None + ) -> HTTPResponse: ... + @overload + def get_etf_global_constituents( + self, + composite_ticker: Optional[str] = None, + composite_ticker_any_of: Optional[str] = None, + composite_ticker_gt: Optional[str] = None, + composite_ticker_gte: Optional[str] = None, + composite_ticker_lt: Optional[str] = None, + composite_ticker_lte: Optional[str] = None, + constituent_ticker: Optional[str] = None, + constituent_ticker_any_of: Optional[str] = None, + constituent_ticker_gt: Optional[str] = None, + constituent_ticker_gte: Optional[str] = None, + constituent_ticker_lt: Optional[str] = None, + constituent_ticker_lte: Optional[str] = None, + effective_date: Optional[Union[str, date]] = None, + effective_date_gt: Optional[Union[str, date]] = None, + effective_date_gte: Optional[Union[str, date]] = None, + effective_date_lt: Optional[Union[str, date]] = None, + effective_date_lte: Optional[Union[str, date]] = None, + processed_date: Optional[Union[str, date]] = None, + processed_date_gt: Optional[Union[str, date]] = None, + processed_date_gte: Optional[Union[str, date]] = None, + processed_date_lt: Optional[Union[str, date]] = None, + processed_date_lte: Optional[Union[str, date]] = None, + us_code: Optional[str] = None, + us_code_any_of: Optional[str] = None, + us_code_gt: Optional[str] = None, + us_code_gte: Optional[str] = None, + us_code_lt: Optional[str] = None, + us_code_lte: Optional[str] = None, + isin: Optional[str] = None, + isin_any_of: Optional[str] = None, + isin_gt: Optional[str] = None, + isin_gte: Optional[str] = None, + isin_lt: Optional[str] = None, + isin_lte: Optional[str] = None, + figi: Optional[str] = None, + figi_any_of: Optional[str] = None, + figi_gt: Optional[str] = None, + figi_gte: Optional[str] = None, + figi_lt: Optional[str] = None, + figi_lte: Optional[str] = None, + sedol: Optional[str] = None, + sedol_any_of: Optional[str] = None, + sedol_gt: Optional[str] = None, + sedol_gte: Optional[str] = None, + sedol_lt: Optional[str] = None, + sedol_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, raw: bool = False, options: Optional[RequestOptionBuilder] = None, - ) -> Union[Iterator[EtfGlobalAnalytics], HTTPResponse]: - """ - Endpoint: GET /etf-global/v1/analytics - """ - url = "/etf-global/v1/analytics" - return self._paginate( - path=url, - params=self._get_params(self.get_etf_global_analytics, locals()), - raw=raw, - deserializer=EtfGlobalAnalytics.from_dict, - options=options, - ) - + ) -> Union[Iterator[EtfGlobalConstituent], HTTPResponse]: ... def get_etf_global_constituents( self, composite_ticker: Optional[str] = None, @@ -173,6 +568,82 @@ def get_etf_global_constituents( options=options, ) + @overload + def get_etf_global_fund_flows( + self, + processed_date: Optional[Union[str, date]] = None, + processed_date_gt: Optional[Union[str, date]] = None, + processed_date_gte: Optional[Union[str, date]] = None, + processed_date_lt: Optional[Union[str, date]] = None, + processed_date_lte: Optional[Union[str, date]] = None, + effective_date: Optional[Union[str, date]] = None, + effective_date_gt: Optional[Union[str, date]] = None, + effective_date_gte: Optional[Union[str, date]] = None, + effective_date_lt: Optional[Union[str, date]] = None, + effective_date_lte: Optional[Union[str, date]] = None, + composite_ticker: Optional[str] = None, + composite_ticker_any_of: Optional[str] = None, + composite_ticker_gt: Optional[str] = None, + composite_ticker_gte: Optional[str] = None, + composite_ticker_lt: Optional[str] = None, + composite_ticker_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[EtfGlobalFundFlow]: ... + @overload + def get_etf_global_fund_flows( + self, + processed_date: Optional[Union[str, date]] = None, + processed_date_gt: Optional[Union[str, date]] = None, + processed_date_gte: Optional[Union[str, date]] = None, + processed_date_lt: Optional[Union[str, date]] = None, + processed_date_lte: Optional[Union[str, date]] = None, + effective_date: Optional[Union[str, date]] = None, + effective_date_gt: Optional[Union[str, date]] = None, + effective_date_gte: Optional[Union[str, date]] = None, + effective_date_lt: Optional[Union[str, date]] = None, + effective_date_lte: Optional[Union[str, date]] = None, + composite_ticker: Optional[str] = None, + composite_ticker_any_of: Optional[str] = None, + composite_ticker_gt: Optional[str] = None, + composite_ticker_gte: Optional[str] = None, + composite_ticker_lt: Optional[str] = None, + composite_ticker_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None + ) -> HTTPResponse: ... + @overload + def get_etf_global_fund_flows( + self, + processed_date: Optional[Union[str, date]] = None, + processed_date_gt: Optional[Union[str, date]] = None, + processed_date_gte: Optional[Union[str, date]] = None, + processed_date_lt: Optional[Union[str, date]] = None, + processed_date_lte: Optional[Union[str, date]] = None, + effective_date: Optional[Union[str, date]] = None, + effective_date_gt: Optional[Union[str, date]] = None, + effective_date_gte: Optional[Union[str, date]] = None, + effective_date_lt: Optional[Union[str, date]] = None, + effective_date_lte: Optional[Union[str, date]] = None, + composite_ticker: Optional[str] = None, + composite_ticker_any_of: Optional[str] = None, + composite_ticker_gt: Optional[str] = None, + composite_ticker_gte: Optional[str] = None, + composite_ticker_lt: Optional[str] = None, + composite_ticker_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[EtfGlobalFundFlow], HTTPResponse]: ... def get_etf_global_fund_flows( self, processed_date: Optional[Union[str, date]] = None, @@ -209,6 +680,82 @@ def get_etf_global_fund_flows( options=options, ) + @overload + def get_etf_global_profiles( + self, + processed_date: Optional[Union[str, date]] = None, + processed_date_gt: Optional[Union[str, date]] = None, + processed_date_gte: Optional[Union[str, date]] = None, + processed_date_lt: Optional[Union[str, date]] = None, + processed_date_lte: Optional[Union[str, date]] = None, + effective_date: Optional[Union[str, date]] = None, + effective_date_gt: Optional[Union[str, date]] = None, + effective_date_gte: Optional[Union[str, date]] = None, + effective_date_lt: Optional[Union[str, date]] = None, + effective_date_lte: Optional[Union[str, date]] = None, + composite_ticker: Optional[str] = None, + composite_ticker_any_of: Optional[str] = None, + composite_ticker_gt: Optional[str] = None, + composite_ticker_gte: Optional[str] = None, + composite_ticker_lt: Optional[str] = None, + composite_ticker_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[EtfGlobalProfile]: ... + @overload + def get_etf_global_profiles( + self, + processed_date: Optional[Union[str, date]] = None, + processed_date_gt: Optional[Union[str, date]] = None, + processed_date_gte: Optional[Union[str, date]] = None, + processed_date_lt: Optional[Union[str, date]] = None, + processed_date_lte: Optional[Union[str, date]] = None, + effective_date: Optional[Union[str, date]] = None, + effective_date_gt: Optional[Union[str, date]] = None, + effective_date_gte: Optional[Union[str, date]] = None, + effective_date_lt: Optional[Union[str, date]] = None, + effective_date_lte: Optional[Union[str, date]] = None, + composite_ticker: Optional[str] = None, + composite_ticker_any_of: Optional[str] = None, + composite_ticker_gt: Optional[str] = None, + composite_ticker_gte: Optional[str] = None, + composite_ticker_lt: Optional[str] = None, + composite_ticker_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None + ) -> HTTPResponse: ... + @overload + def get_etf_global_profiles( + self, + processed_date: Optional[Union[str, date]] = None, + processed_date_gt: Optional[Union[str, date]] = None, + processed_date_gte: Optional[Union[str, date]] = None, + processed_date_lt: Optional[Union[str, date]] = None, + processed_date_lte: Optional[Union[str, date]] = None, + effective_date: Optional[Union[str, date]] = None, + effective_date_gt: Optional[Union[str, date]] = None, + effective_date_gte: Optional[Union[str, date]] = None, + effective_date_lt: Optional[Union[str, date]] = None, + effective_date_lte: Optional[Union[str, date]] = None, + composite_ticker: Optional[str] = None, + composite_ticker_any_of: Optional[str] = None, + composite_ticker_gt: Optional[str] = None, + composite_ticker_gte: Optional[str] = None, + composite_ticker_lt: Optional[str] = None, + composite_ticker_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[EtfGlobalProfile], HTTPResponse]: ... def get_etf_global_profiles( self, processed_date: Optional[Union[str, date]] = None, @@ -245,6 +792,82 @@ def get_etf_global_profiles( options=options, ) + @overload + def get_etf_global_taxonomies( + self, + processed_date: Optional[Union[str, date]] = None, + processed_date_gt: Optional[Union[str, date]] = None, + processed_date_gte: Optional[Union[str, date]] = None, + processed_date_lt: Optional[Union[str, date]] = None, + processed_date_lte: Optional[Union[str, date]] = None, + effective_date: Optional[Union[str, date]] = None, + effective_date_gt: Optional[Union[str, date]] = None, + effective_date_gte: Optional[Union[str, date]] = None, + effective_date_lt: Optional[Union[str, date]] = None, + effective_date_lte: Optional[Union[str, date]] = None, + composite_ticker: Optional[str] = None, + composite_ticker_any_of: Optional[str] = None, + composite_ticker_gt: Optional[str] = None, + composite_ticker_gte: Optional[str] = None, + composite_ticker_lt: Optional[str] = None, + composite_ticker_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[EtfGlobalTaxonomy]: ... + @overload + def get_etf_global_taxonomies( + self, + processed_date: Optional[Union[str, date]] = None, + processed_date_gt: Optional[Union[str, date]] = None, + processed_date_gte: Optional[Union[str, date]] = None, + processed_date_lt: Optional[Union[str, date]] = None, + processed_date_lte: Optional[Union[str, date]] = None, + effective_date: Optional[Union[str, date]] = None, + effective_date_gt: Optional[Union[str, date]] = None, + effective_date_gte: Optional[Union[str, date]] = None, + effective_date_lt: Optional[Union[str, date]] = None, + effective_date_lte: Optional[Union[str, date]] = None, + composite_ticker: Optional[str] = None, + composite_ticker_any_of: Optional[str] = None, + composite_ticker_gt: Optional[str] = None, + composite_ticker_gte: Optional[str] = None, + composite_ticker_lt: Optional[str] = None, + composite_ticker_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None + ) -> HTTPResponse: ... + @overload + def get_etf_global_taxonomies( + self, + processed_date: Optional[Union[str, date]] = None, + processed_date_gt: Optional[Union[str, date]] = None, + processed_date_gte: Optional[Union[str, date]] = None, + processed_date_lt: Optional[Union[str, date]] = None, + processed_date_lte: Optional[Union[str, date]] = None, + effective_date: Optional[Union[str, date]] = None, + effective_date_gt: Optional[Union[str, date]] = None, + effective_date_gte: Optional[Union[str, date]] = None, + effective_date_lt: Optional[Union[str, date]] = None, + effective_date_lte: Optional[Union[str, date]] = None, + composite_ticker: Optional[str] = None, + composite_ticker_any_of: Optional[str] = None, + composite_ticker_gt: Optional[str] = None, + composite_ticker_gte: Optional[str] = None, + composite_ticker_lt: Optional[str] = None, + composite_ticker_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[EtfGlobalTaxonomy], HTTPResponse]: ... def get_etf_global_taxonomies( self, processed_date: Optional[Union[str, date]] = None, diff --git a/massive/rest/financials.py b/massive/rest/financials.py index 6138258a..9c6475ec 100644 --- a/massive/rest/financials.py +++ b/massive/rest/financials.py @@ -1,5 +1,5 @@ # financials.py -from typing import Optional, Any, Dict, List, Union, Iterator +from typing import Optional, Any, Dict, List, Union, Iterator, Literal, overload from urllib3 import HTTPResponse from datetime import datetime, date @@ -21,6 +21,139 @@ class FinancialsClient(BaseClient): (aligned with the paths from /stocks/financials/v1/...) """ + @overload + def list_financials_balance_sheets( + self, + cik: Optional[str] = None, + cik_any_of: Optional[str] = None, + cik_gt: Optional[str] = None, + cik_gte: Optional[str] = None, + cik_lt: Optional[str] = None, + cik_lte: Optional[str] = None, + tickers: Optional[str] = None, + tickers_all_of: Optional[str] = None, + tickers_any_of: Optional[str] = None, + period_end: Optional[Union[str, date]] = None, + period_end_gt: Optional[Union[str, date]] = None, + period_end_gte: Optional[Union[str, date]] = None, + period_end_lt: Optional[Union[str, date]] = None, + period_end_lte: Optional[Union[str, date]] = None, + filing_date: Optional[Union[str, date]] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + fiscal_year: Optional[float] = None, + fiscal_year_gt: Optional[float] = None, + fiscal_year_gte: Optional[float] = None, + fiscal_year_lt: Optional[float] = None, + fiscal_year_lte: Optional[float] = None, + fiscal_quarter: Optional[float] = None, + fiscal_quarter_gt: Optional[float] = None, + fiscal_quarter_gte: Optional[float] = None, + fiscal_quarter_lt: Optional[float] = None, + fiscal_quarter_lte: Optional[float] = None, + timeframe: Optional[str] = None, + timeframe_any_of: Optional[str] = None, + timeframe_gt: Optional[str] = None, + timeframe_gte: Optional[str] = None, + timeframe_lt: Optional[str] = None, + timeframe_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[FinancialBalanceSheet]: ... + @overload + def list_financials_balance_sheets( + self, + cik: Optional[str] = None, + cik_any_of: Optional[str] = None, + cik_gt: Optional[str] = None, + cik_gte: Optional[str] = None, + cik_lt: Optional[str] = None, + cik_lte: Optional[str] = None, + tickers: Optional[str] = None, + tickers_all_of: Optional[str] = None, + tickers_any_of: Optional[str] = None, + period_end: Optional[Union[str, date]] = None, + period_end_gt: Optional[Union[str, date]] = None, + period_end_gte: Optional[Union[str, date]] = None, + period_end_lt: Optional[Union[str, date]] = None, + period_end_lte: Optional[Union[str, date]] = None, + filing_date: Optional[Union[str, date]] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + fiscal_year: Optional[float] = None, + fiscal_year_gt: Optional[float] = None, + fiscal_year_gte: Optional[float] = None, + fiscal_year_lt: Optional[float] = None, + fiscal_year_lte: Optional[float] = None, + fiscal_quarter: Optional[float] = None, + fiscal_quarter_gt: Optional[float] = None, + fiscal_quarter_gte: Optional[float] = None, + fiscal_quarter_lt: Optional[float] = None, + fiscal_quarter_lte: Optional[float] = None, + timeframe: Optional[str] = None, + timeframe_any_of: Optional[str] = None, + timeframe_gt: Optional[str] = None, + timeframe_gte: Optional[str] = None, + timeframe_lt: Optional[str] = None, + timeframe_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None + ) -> HTTPResponse: ... + @overload + def list_financials_balance_sheets( + self, + cik: Optional[str] = None, + cik_any_of: Optional[str] = None, + cik_gt: Optional[str] = None, + cik_gte: Optional[str] = None, + cik_lt: Optional[str] = None, + cik_lte: Optional[str] = None, + tickers: Optional[str] = None, + tickers_all_of: Optional[str] = None, + tickers_any_of: Optional[str] = None, + period_end: Optional[Union[str, date]] = None, + period_end_gt: Optional[Union[str, date]] = None, + period_end_gte: Optional[Union[str, date]] = None, + period_end_lt: Optional[Union[str, date]] = None, + period_end_lte: Optional[Union[str, date]] = None, + filing_date: Optional[Union[str, date]] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + fiscal_year: Optional[float] = None, + fiscal_year_gt: Optional[float] = None, + fiscal_year_gte: Optional[float] = None, + fiscal_year_lt: Optional[float] = None, + fiscal_year_lte: Optional[float] = None, + fiscal_quarter: Optional[float] = None, + fiscal_quarter_gt: Optional[float] = None, + fiscal_quarter_gte: Optional[float] = None, + fiscal_quarter_lt: Optional[float] = None, + fiscal_quarter_lte: Optional[float] = None, + timeframe: Optional[str] = None, + timeframe_any_of: Optional[str] = None, + timeframe_gt: Optional[str] = None, + timeframe_gte: Optional[str] = None, + timeframe_lt: Optional[str] = None, + timeframe_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[FinancialBalanceSheet], HTTPResponse]: ... def list_financials_balance_sheets( self, cik: Optional[str] = None, @@ -76,6 +209,139 @@ def list_financials_balance_sheets( options=options, ) + @overload + def list_financials_cash_flow_statements( + self, + cik: Optional[str] = None, + cik_any_of: Optional[str] = None, + cik_gt: Optional[str] = None, + cik_gte: Optional[str] = None, + cik_lt: Optional[str] = None, + cik_lte: Optional[str] = None, + period_end: Optional[Union[str, date]] = None, + period_end_gt: Optional[Union[str, date]] = None, + period_end_gte: Optional[Union[str, date]] = None, + period_end_lt: Optional[Union[str, date]] = None, + period_end_lte: Optional[Union[str, date]] = None, + filing_date: Optional[Union[str, date]] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + tickers: Optional[str] = None, + tickers_all_of: Optional[str] = None, + tickers_any_of: Optional[str] = None, + fiscal_year: Optional[float] = None, + fiscal_year_gt: Optional[float] = None, + fiscal_year_gte: Optional[float] = None, + fiscal_year_lt: Optional[float] = None, + fiscal_year_lte: Optional[float] = None, + fiscal_quarter: Optional[float] = None, + fiscal_quarter_gt: Optional[float] = None, + fiscal_quarter_gte: Optional[float] = None, + fiscal_quarter_lt: Optional[float] = None, + fiscal_quarter_lte: Optional[float] = None, + timeframe: Optional[str] = None, + timeframe_any_of: Optional[str] = None, + timeframe_gt: Optional[str] = None, + timeframe_gte: Optional[str] = None, + timeframe_lt: Optional[str] = None, + timeframe_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[FinancialCashFlowStatement]: ... + @overload + def list_financials_cash_flow_statements( + self, + cik: Optional[str] = None, + cik_any_of: Optional[str] = None, + cik_gt: Optional[str] = None, + cik_gte: Optional[str] = None, + cik_lt: Optional[str] = None, + cik_lte: Optional[str] = None, + period_end: Optional[Union[str, date]] = None, + period_end_gt: Optional[Union[str, date]] = None, + period_end_gte: Optional[Union[str, date]] = None, + period_end_lt: Optional[Union[str, date]] = None, + period_end_lte: Optional[Union[str, date]] = None, + filing_date: Optional[Union[str, date]] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + tickers: Optional[str] = None, + tickers_all_of: Optional[str] = None, + tickers_any_of: Optional[str] = None, + fiscal_year: Optional[float] = None, + fiscal_year_gt: Optional[float] = None, + fiscal_year_gte: Optional[float] = None, + fiscal_year_lt: Optional[float] = None, + fiscal_year_lte: Optional[float] = None, + fiscal_quarter: Optional[float] = None, + fiscal_quarter_gt: Optional[float] = None, + fiscal_quarter_gte: Optional[float] = None, + fiscal_quarter_lt: Optional[float] = None, + fiscal_quarter_lte: Optional[float] = None, + timeframe: Optional[str] = None, + timeframe_any_of: Optional[str] = None, + timeframe_gt: Optional[str] = None, + timeframe_gte: Optional[str] = None, + timeframe_lt: Optional[str] = None, + timeframe_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None + ) -> HTTPResponse: ... + @overload + def list_financials_cash_flow_statements( + self, + cik: Optional[str] = None, + cik_any_of: Optional[str] = None, + cik_gt: Optional[str] = None, + cik_gte: Optional[str] = None, + cik_lt: Optional[str] = None, + cik_lte: Optional[str] = None, + period_end: Optional[Union[str, date]] = None, + period_end_gt: Optional[Union[str, date]] = None, + period_end_gte: Optional[Union[str, date]] = None, + period_end_lt: Optional[Union[str, date]] = None, + period_end_lte: Optional[Union[str, date]] = None, + filing_date: Optional[Union[str, date]] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + tickers: Optional[str] = None, + tickers_all_of: Optional[str] = None, + tickers_any_of: Optional[str] = None, + fiscal_year: Optional[float] = None, + fiscal_year_gt: Optional[float] = None, + fiscal_year_gte: Optional[float] = None, + fiscal_year_lt: Optional[float] = None, + fiscal_year_lte: Optional[float] = None, + fiscal_quarter: Optional[float] = None, + fiscal_quarter_gt: Optional[float] = None, + fiscal_quarter_gte: Optional[float] = None, + fiscal_quarter_lt: Optional[float] = None, + fiscal_quarter_lte: Optional[float] = None, + timeframe: Optional[str] = None, + timeframe_any_of: Optional[str] = None, + timeframe_gt: Optional[str] = None, + timeframe_gte: Optional[str] = None, + timeframe_lt: Optional[str] = None, + timeframe_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[FinancialCashFlowStatement], HTTPResponse]: ... def list_financials_cash_flow_statements( self, cik: Optional[str] = None, @@ -116,78 +382,575 @@ def list_financials_cash_flow_statements( limit: Optional[int] = None, sort: Optional[Union[str, Sort]] = None, params: Optional[Dict[str, Any]] = None, - raw: bool = False, - options: Optional[RequestOptionBuilder] = None, - ) -> Union[Iterator[FinancialCashFlowStatement], HTTPResponse]: - """ - Endpoint: GET /stocks/financials/v1/cash-flow-statements - """ - url = "/stocks/financials/v1/cash-flow-statements" - return self._paginate( - path=url, - params=self._get_params( - self.list_financials_cash_flow_statements, locals() - ), - raw=raw, - deserializer=FinancialCashFlowStatement.from_dict, - options=options, - ) - - def list_financials_income_statements( + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[FinancialCashFlowStatement], HTTPResponse]: + """ + Endpoint: GET /stocks/financials/v1/cash-flow-statements + """ + url = "/stocks/financials/v1/cash-flow-statements" + return self._paginate( + path=url, + params=self._get_params( + self.list_financials_cash_flow_statements, locals() + ), + raw=raw, + deserializer=FinancialCashFlowStatement.from_dict, + options=options, + ) + + @overload + def list_financials_income_statements( + self, + cik: Optional[str] = None, + cik_any_of: Optional[str] = None, + cik_gt: Optional[str] = None, + cik_gte: Optional[str] = None, + cik_lt: Optional[str] = None, + cik_lte: Optional[str] = None, + tickers: Optional[str] = None, + tickers_all_of: Optional[str] = None, + tickers_any_of: Optional[str] = None, + period_end: Optional[Union[str, date]] = None, + period_end_gt: Optional[Union[str, date]] = None, + period_end_gte: Optional[Union[str, date]] = None, + period_end_lt: Optional[Union[str, date]] = None, + period_end_lte: Optional[Union[str, date]] = None, + filing_date: Optional[Union[str, date]] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + fiscal_year: Optional[float] = None, + fiscal_year_gt: Optional[float] = None, + fiscal_year_gte: Optional[float] = None, + fiscal_year_lt: Optional[float] = None, + fiscal_year_lte: Optional[float] = None, + fiscal_quarter: Optional[float] = None, + fiscal_quarter_gt: Optional[float] = None, + fiscal_quarter_gte: Optional[float] = None, + fiscal_quarter_lt: Optional[float] = None, + fiscal_quarter_lte: Optional[float] = None, + timeframe: Optional[str] = None, + timeframe_any_of: Optional[str] = None, + timeframe_gt: Optional[str] = None, + timeframe_gte: Optional[str] = None, + timeframe_lt: Optional[str] = None, + timeframe_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[FinancialIncomeStatement]: ... + @overload + def list_financials_income_statements( + self, + cik: Optional[str] = None, + cik_any_of: Optional[str] = None, + cik_gt: Optional[str] = None, + cik_gte: Optional[str] = None, + cik_lt: Optional[str] = None, + cik_lte: Optional[str] = None, + tickers: Optional[str] = None, + tickers_all_of: Optional[str] = None, + tickers_any_of: Optional[str] = None, + period_end: Optional[Union[str, date]] = None, + period_end_gt: Optional[Union[str, date]] = None, + period_end_gte: Optional[Union[str, date]] = None, + period_end_lt: Optional[Union[str, date]] = None, + period_end_lte: Optional[Union[str, date]] = None, + filing_date: Optional[Union[str, date]] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + fiscal_year: Optional[float] = None, + fiscal_year_gt: Optional[float] = None, + fiscal_year_gte: Optional[float] = None, + fiscal_year_lt: Optional[float] = None, + fiscal_year_lte: Optional[float] = None, + fiscal_quarter: Optional[float] = None, + fiscal_quarter_gt: Optional[float] = None, + fiscal_quarter_gte: Optional[float] = None, + fiscal_quarter_lt: Optional[float] = None, + fiscal_quarter_lte: Optional[float] = None, + timeframe: Optional[str] = None, + timeframe_any_of: Optional[str] = None, + timeframe_gt: Optional[str] = None, + timeframe_gte: Optional[str] = None, + timeframe_lt: Optional[str] = None, + timeframe_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None + ) -> HTTPResponse: ... + @overload + def list_financials_income_statements( + self, + cik: Optional[str] = None, + cik_any_of: Optional[str] = None, + cik_gt: Optional[str] = None, + cik_gte: Optional[str] = None, + cik_lt: Optional[str] = None, + cik_lte: Optional[str] = None, + tickers: Optional[str] = None, + tickers_all_of: Optional[str] = None, + tickers_any_of: Optional[str] = None, + period_end: Optional[Union[str, date]] = None, + period_end_gt: Optional[Union[str, date]] = None, + period_end_gte: Optional[Union[str, date]] = None, + period_end_lt: Optional[Union[str, date]] = None, + period_end_lte: Optional[Union[str, date]] = None, + filing_date: Optional[Union[str, date]] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + fiscal_year: Optional[float] = None, + fiscal_year_gt: Optional[float] = None, + fiscal_year_gte: Optional[float] = None, + fiscal_year_lt: Optional[float] = None, + fiscal_year_lte: Optional[float] = None, + fiscal_quarter: Optional[float] = None, + fiscal_quarter_gt: Optional[float] = None, + fiscal_quarter_gte: Optional[float] = None, + fiscal_quarter_lt: Optional[float] = None, + fiscal_quarter_lte: Optional[float] = None, + timeframe: Optional[str] = None, + timeframe_any_of: Optional[str] = None, + timeframe_gt: Optional[str] = None, + timeframe_gte: Optional[str] = None, + timeframe_lt: Optional[str] = None, + timeframe_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[FinancialIncomeStatement], HTTPResponse]: ... + def list_financials_income_statements( + self, + cik: Optional[str] = None, + cik_any_of: Optional[str] = None, + cik_gt: Optional[str] = None, + cik_gte: Optional[str] = None, + cik_lt: Optional[str] = None, + cik_lte: Optional[str] = None, + tickers: Optional[str] = None, + tickers_all_of: Optional[str] = None, + tickers_any_of: Optional[str] = None, + period_end: Optional[Union[str, date]] = None, + period_end_gt: Optional[Union[str, date]] = None, + period_end_gte: Optional[Union[str, date]] = None, + period_end_lt: Optional[Union[str, date]] = None, + period_end_lte: Optional[Union[str, date]] = None, + filing_date: Optional[Union[str, date]] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + fiscal_year: Optional[float] = None, + fiscal_year_gt: Optional[float] = None, + fiscal_year_gte: Optional[float] = None, + fiscal_year_lt: Optional[float] = None, + fiscal_year_lte: Optional[float] = None, + fiscal_quarter: Optional[float] = None, + fiscal_quarter_gt: Optional[float] = None, + fiscal_quarter_gte: Optional[float] = None, + fiscal_quarter_lt: Optional[float] = None, + fiscal_quarter_lte: Optional[float] = None, + timeframe: Optional[str] = None, + timeframe_any_of: Optional[str] = None, + timeframe_gt: Optional[str] = None, + timeframe_gte: Optional[str] = None, + timeframe_lt: Optional[str] = None, + timeframe_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[FinancialIncomeStatement], HTTPResponse]: + """ + Endpoint: GET /stocks/financials/v1/income-statements + """ + url = "/stocks/financials/v1/income-statements" + return self._paginate( + path=url, + params=self._get_params(self.list_financials_income_statements, locals()), + raw=raw, + deserializer=FinancialIncomeStatement.from_dict, + options=options, + ) + + @overload + def list_financials_ratios( + self, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + cik: Optional[str] = None, + cik_any_of: Optional[str] = None, + cik_gt: Optional[str] = None, + cik_gte: Optional[str] = None, + cik_lt: Optional[str] = None, + cik_lte: Optional[str] = None, + price: Optional[float] = None, + price_gt: Optional[float] = None, + price_gte: Optional[float] = None, + price_lt: Optional[float] = None, + price_lte: Optional[float] = None, + average_volume: Optional[float] = None, + average_volume_gt: Optional[float] = None, + average_volume_gte: Optional[float] = None, + average_volume_lt: Optional[float] = None, + average_volume_lte: Optional[float] = None, + market_cap: Optional[float] = None, + market_cap_gt: Optional[float] = None, + market_cap_gte: Optional[float] = None, + market_cap_lt: Optional[float] = None, + market_cap_lte: Optional[float] = None, + earnings_per_share: Optional[float] = None, + earnings_per_share_gt: Optional[float] = None, + earnings_per_share_gte: Optional[float] = None, + earnings_per_share_lt: Optional[float] = None, + earnings_per_share_lte: Optional[float] = None, + price_to_earnings: Optional[float] = None, + price_to_earnings_gt: Optional[float] = None, + price_to_earnings_gte: Optional[float] = None, + price_to_earnings_lt: Optional[float] = None, + price_to_earnings_lte: Optional[float] = None, + price_to_book: Optional[float] = None, + price_to_book_gt: Optional[float] = None, + price_to_book_gte: Optional[float] = None, + price_to_book_lt: Optional[float] = None, + price_to_book_lte: Optional[float] = None, + price_to_sales: Optional[float] = None, + price_to_sales_gt: Optional[float] = None, + price_to_sales_gte: Optional[float] = None, + price_to_sales_lt: Optional[float] = None, + price_to_sales_lte: Optional[float] = None, + price_to_cash_flow: Optional[float] = None, + price_to_cash_flow_gt: Optional[float] = None, + price_to_cash_flow_gte: Optional[float] = None, + price_to_cash_flow_lt: Optional[float] = None, + price_to_cash_flow_lte: Optional[float] = None, + price_to_free_cash_flow: Optional[float] = None, + price_to_free_cash_flow_gt: Optional[float] = None, + price_to_free_cash_flow_gte: Optional[float] = None, + price_to_free_cash_flow_lt: Optional[float] = None, + price_to_free_cash_flow_lte: Optional[float] = None, + dividend_yield: Optional[float] = None, + dividend_yield_gt: Optional[float] = None, + dividend_yield_gte: Optional[float] = None, + dividend_yield_lt: Optional[float] = None, + dividend_yield_lte: Optional[float] = None, + return_on_assets: Optional[float] = None, + return_on_assets_gt: Optional[float] = None, + return_on_assets_gte: Optional[float] = None, + return_on_assets_lt: Optional[float] = None, + return_on_assets_lte: Optional[float] = None, + return_on_equity: Optional[float] = None, + return_on_equity_gt: Optional[float] = None, + return_on_equity_gte: Optional[float] = None, + return_on_equity_lt: Optional[float] = None, + return_on_equity_lte: Optional[float] = None, + debt_to_equity: Optional[float] = None, + debt_to_equity_gt: Optional[float] = None, + debt_to_equity_gte: Optional[float] = None, + debt_to_equity_lt: Optional[float] = None, + debt_to_equity_lte: Optional[float] = None, + current: Optional[float] = None, + current_gt: Optional[float] = None, + current_gte: Optional[float] = None, + current_lt: Optional[float] = None, + current_lte: Optional[float] = None, + quick: Optional[float] = None, + quick_gt: Optional[float] = None, + quick_gte: Optional[float] = None, + quick_lt: Optional[float] = None, + quick_lte: Optional[float] = None, + cash: Optional[float] = None, + cash_gt: Optional[float] = None, + cash_gte: Optional[float] = None, + cash_lt: Optional[float] = None, + cash_lte: Optional[float] = None, + ev_to_sales: Optional[float] = None, + ev_to_sales_gt: Optional[float] = None, + ev_to_sales_gte: Optional[float] = None, + ev_to_sales_lt: Optional[float] = None, + ev_to_sales_lte: Optional[float] = None, + ev_to_ebitda: Optional[float] = None, + ev_to_ebitda_gt: Optional[float] = None, + ev_to_ebitda_gte: Optional[float] = None, + ev_to_ebitda_lt: Optional[float] = None, + ev_to_ebitda_lte: Optional[float] = None, + enterprise_value: Optional[float] = None, + enterprise_value_gt: Optional[float] = None, + enterprise_value_gte: Optional[float] = None, + enterprise_value_lt: Optional[float] = None, + enterprise_value_lte: Optional[float] = None, + free_cash_flow: Optional[float] = None, + free_cash_flow_gt: Optional[float] = None, + free_cash_flow_gte: Optional[float] = None, + free_cash_flow_lt: Optional[float] = None, + free_cash_flow_lte: Optional[float] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[FinancialRatio]: ... + @overload + def list_financials_ratios( + self, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + cik: Optional[str] = None, + cik_any_of: Optional[str] = None, + cik_gt: Optional[str] = None, + cik_gte: Optional[str] = None, + cik_lt: Optional[str] = None, + cik_lte: Optional[str] = None, + price: Optional[float] = None, + price_gt: Optional[float] = None, + price_gte: Optional[float] = None, + price_lt: Optional[float] = None, + price_lte: Optional[float] = None, + average_volume: Optional[float] = None, + average_volume_gt: Optional[float] = None, + average_volume_gte: Optional[float] = None, + average_volume_lt: Optional[float] = None, + average_volume_lte: Optional[float] = None, + market_cap: Optional[float] = None, + market_cap_gt: Optional[float] = None, + market_cap_gte: Optional[float] = None, + market_cap_lt: Optional[float] = None, + market_cap_lte: Optional[float] = None, + earnings_per_share: Optional[float] = None, + earnings_per_share_gt: Optional[float] = None, + earnings_per_share_gte: Optional[float] = None, + earnings_per_share_lt: Optional[float] = None, + earnings_per_share_lte: Optional[float] = None, + price_to_earnings: Optional[float] = None, + price_to_earnings_gt: Optional[float] = None, + price_to_earnings_gte: Optional[float] = None, + price_to_earnings_lt: Optional[float] = None, + price_to_earnings_lte: Optional[float] = None, + price_to_book: Optional[float] = None, + price_to_book_gt: Optional[float] = None, + price_to_book_gte: Optional[float] = None, + price_to_book_lt: Optional[float] = None, + price_to_book_lte: Optional[float] = None, + price_to_sales: Optional[float] = None, + price_to_sales_gt: Optional[float] = None, + price_to_sales_gte: Optional[float] = None, + price_to_sales_lt: Optional[float] = None, + price_to_sales_lte: Optional[float] = None, + price_to_cash_flow: Optional[float] = None, + price_to_cash_flow_gt: Optional[float] = None, + price_to_cash_flow_gte: Optional[float] = None, + price_to_cash_flow_lt: Optional[float] = None, + price_to_cash_flow_lte: Optional[float] = None, + price_to_free_cash_flow: Optional[float] = None, + price_to_free_cash_flow_gt: Optional[float] = None, + price_to_free_cash_flow_gte: Optional[float] = None, + price_to_free_cash_flow_lt: Optional[float] = None, + price_to_free_cash_flow_lte: Optional[float] = None, + dividend_yield: Optional[float] = None, + dividend_yield_gt: Optional[float] = None, + dividend_yield_gte: Optional[float] = None, + dividend_yield_lt: Optional[float] = None, + dividend_yield_lte: Optional[float] = None, + return_on_assets: Optional[float] = None, + return_on_assets_gt: Optional[float] = None, + return_on_assets_gte: Optional[float] = None, + return_on_assets_lt: Optional[float] = None, + return_on_assets_lte: Optional[float] = None, + return_on_equity: Optional[float] = None, + return_on_equity_gt: Optional[float] = None, + return_on_equity_gte: Optional[float] = None, + return_on_equity_lt: Optional[float] = None, + return_on_equity_lte: Optional[float] = None, + debt_to_equity: Optional[float] = None, + debt_to_equity_gt: Optional[float] = None, + debt_to_equity_gte: Optional[float] = None, + debt_to_equity_lt: Optional[float] = None, + debt_to_equity_lte: Optional[float] = None, + current: Optional[float] = None, + current_gt: Optional[float] = None, + current_gte: Optional[float] = None, + current_lt: Optional[float] = None, + current_lte: Optional[float] = None, + quick: Optional[float] = None, + quick_gt: Optional[float] = None, + quick_gte: Optional[float] = None, + quick_lt: Optional[float] = None, + quick_lte: Optional[float] = None, + cash: Optional[float] = None, + cash_gt: Optional[float] = None, + cash_gte: Optional[float] = None, + cash_lt: Optional[float] = None, + cash_lte: Optional[float] = None, + ev_to_sales: Optional[float] = None, + ev_to_sales_gt: Optional[float] = None, + ev_to_sales_gte: Optional[float] = None, + ev_to_sales_lt: Optional[float] = None, + ev_to_sales_lte: Optional[float] = None, + ev_to_ebitda: Optional[float] = None, + ev_to_ebitda_gt: Optional[float] = None, + ev_to_ebitda_gte: Optional[float] = None, + ev_to_ebitda_lt: Optional[float] = None, + ev_to_ebitda_lte: Optional[float] = None, + enterprise_value: Optional[float] = None, + enterprise_value_gt: Optional[float] = None, + enterprise_value_gte: Optional[float] = None, + enterprise_value_lt: Optional[float] = None, + enterprise_value_lte: Optional[float] = None, + free_cash_flow: Optional[float] = None, + free_cash_flow_gt: Optional[float] = None, + free_cash_flow_gte: Optional[float] = None, + free_cash_flow_lt: Optional[float] = None, + free_cash_flow_lte: Optional[float] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None + ) -> HTTPResponse: ... + @overload + def list_financials_ratios( self, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, cik: Optional[str] = None, cik_any_of: Optional[str] = None, cik_gt: Optional[str] = None, cik_gte: Optional[str] = None, cik_lt: Optional[str] = None, cik_lte: Optional[str] = None, - tickers: Optional[str] = None, - tickers_all_of: Optional[str] = None, - tickers_any_of: Optional[str] = None, - period_end: Optional[Union[str, date]] = None, - period_end_gt: Optional[Union[str, date]] = None, - period_end_gte: Optional[Union[str, date]] = None, - period_end_lt: Optional[Union[str, date]] = None, - period_end_lte: Optional[Union[str, date]] = None, - filing_date: Optional[Union[str, date]] = None, - filing_date_gt: Optional[Union[str, date]] = None, - filing_date_gte: Optional[Union[str, date]] = None, - filing_date_lt: Optional[Union[str, date]] = None, - filing_date_lte: Optional[Union[str, date]] = None, - fiscal_year: Optional[float] = None, - fiscal_year_gt: Optional[float] = None, - fiscal_year_gte: Optional[float] = None, - fiscal_year_lt: Optional[float] = None, - fiscal_year_lte: Optional[float] = None, - fiscal_quarter: Optional[float] = None, - fiscal_quarter_gt: Optional[float] = None, - fiscal_quarter_gte: Optional[float] = None, - fiscal_quarter_lt: Optional[float] = None, - fiscal_quarter_lte: Optional[float] = None, - timeframe: Optional[str] = None, - timeframe_any_of: Optional[str] = None, - timeframe_gt: Optional[str] = None, - timeframe_gte: Optional[str] = None, - timeframe_lt: Optional[str] = None, - timeframe_lte: Optional[str] = None, + price: Optional[float] = None, + price_gt: Optional[float] = None, + price_gte: Optional[float] = None, + price_lt: Optional[float] = None, + price_lte: Optional[float] = None, + average_volume: Optional[float] = None, + average_volume_gt: Optional[float] = None, + average_volume_gte: Optional[float] = None, + average_volume_lt: Optional[float] = None, + average_volume_lte: Optional[float] = None, + market_cap: Optional[float] = None, + market_cap_gt: Optional[float] = None, + market_cap_gte: Optional[float] = None, + market_cap_lt: Optional[float] = None, + market_cap_lte: Optional[float] = None, + earnings_per_share: Optional[float] = None, + earnings_per_share_gt: Optional[float] = None, + earnings_per_share_gte: Optional[float] = None, + earnings_per_share_lt: Optional[float] = None, + earnings_per_share_lte: Optional[float] = None, + price_to_earnings: Optional[float] = None, + price_to_earnings_gt: Optional[float] = None, + price_to_earnings_gte: Optional[float] = None, + price_to_earnings_lt: Optional[float] = None, + price_to_earnings_lte: Optional[float] = None, + price_to_book: Optional[float] = None, + price_to_book_gt: Optional[float] = None, + price_to_book_gte: Optional[float] = None, + price_to_book_lt: Optional[float] = None, + price_to_book_lte: Optional[float] = None, + price_to_sales: Optional[float] = None, + price_to_sales_gt: Optional[float] = None, + price_to_sales_gte: Optional[float] = None, + price_to_sales_lt: Optional[float] = None, + price_to_sales_lte: Optional[float] = None, + price_to_cash_flow: Optional[float] = None, + price_to_cash_flow_gt: Optional[float] = None, + price_to_cash_flow_gte: Optional[float] = None, + price_to_cash_flow_lt: Optional[float] = None, + price_to_cash_flow_lte: Optional[float] = None, + price_to_free_cash_flow: Optional[float] = None, + price_to_free_cash_flow_gt: Optional[float] = None, + price_to_free_cash_flow_gte: Optional[float] = None, + price_to_free_cash_flow_lt: Optional[float] = None, + price_to_free_cash_flow_lte: Optional[float] = None, + dividend_yield: Optional[float] = None, + dividend_yield_gt: Optional[float] = None, + dividend_yield_gte: Optional[float] = None, + dividend_yield_lt: Optional[float] = None, + dividend_yield_lte: Optional[float] = None, + return_on_assets: Optional[float] = None, + return_on_assets_gt: Optional[float] = None, + return_on_assets_gte: Optional[float] = None, + return_on_assets_lt: Optional[float] = None, + return_on_assets_lte: Optional[float] = None, + return_on_equity: Optional[float] = None, + return_on_equity_gt: Optional[float] = None, + return_on_equity_gte: Optional[float] = None, + return_on_equity_lt: Optional[float] = None, + return_on_equity_lte: Optional[float] = None, + debt_to_equity: Optional[float] = None, + debt_to_equity_gt: Optional[float] = None, + debt_to_equity_gte: Optional[float] = None, + debt_to_equity_lt: Optional[float] = None, + debt_to_equity_lte: Optional[float] = None, + current: Optional[float] = None, + current_gt: Optional[float] = None, + current_gte: Optional[float] = None, + current_lt: Optional[float] = None, + current_lte: Optional[float] = None, + quick: Optional[float] = None, + quick_gt: Optional[float] = None, + quick_gte: Optional[float] = None, + quick_lt: Optional[float] = None, + quick_lte: Optional[float] = None, + cash: Optional[float] = None, + cash_gt: Optional[float] = None, + cash_gte: Optional[float] = None, + cash_lt: Optional[float] = None, + cash_lte: Optional[float] = None, + ev_to_sales: Optional[float] = None, + ev_to_sales_gt: Optional[float] = None, + ev_to_sales_gte: Optional[float] = None, + ev_to_sales_lt: Optional[float] = None, + ev_to_sales_lte: Optional[float] = None, + ev_to_ebitda: Optional[float] = None, + ev_to_ebitda_gt: Optional[float] = None, + ev_to_ebitda_gte: Optional[float] = None, + ev_to_ebitda_lt: Optional[float] = None, + ev_to_ebitda_lte: Optional[float] = None, + enterprise_value: Optional[float] = None, + enterprise_value_gt: Optional[float] = None, + enterprise_value_gte: Optional[float] = None, + enterprise_value_lt: Optional[float] = None, + enterprise_value_lte: Optional[float] = None, + free_cash_flow: Optional[float] = None, + free_cash_flow_gt: Optional[float] = None, + free_cash_flow_gte: Optional[float] = None, + free_cash_flow_lt: Optional[float] = None, + free_cash_flow_lte: Optional[float] = None, limit: Optional[int] = None, sort: Optional[Union[str, Sort]] = None, params: Optional[Dict[str, Any]] = None, raw: bool = False, options: Optional[RequestOptionBuilder] = None, - ) -> Union[Iterator[FinancialIncomeStatement], HTTPResponse]: - """ - Endpoint: GET /stocks/financials/v1/income-statements - """ - url = "/stocks/financials/v1/income-statements" - return self._paginate( - path=url, - params=self._get_params(self.list_financials_income_statements, locals()), - raw=raw, - deserializer=FinancialIncomeStatement.from_dict, - options=options, - ) - + ) -> Union[Iterator[FinancialRatio], HTTPResponse]: ... def list_financials_ratios( self, ticker: Optional[str] = None, @@ -320,6 +1083,67 @@ def list_financials_ratios( options=options, ) + @overload + def list_stocks_floats( + self, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + free_float_percent: Optional[float] = None, + free_float_percent_gt: Optional[float] = None, + free_float_percent_gte: Optional[float] = None, + free_float_percent_lt: Optional[float] = None, + free_float_percent_lte: Optional[float] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[FinancialFloat]: ... + @overload + def list_stocks_floats( + self, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + free_float_percent: Optional[float] = None, + free_float_percent_gt: Optional[float] = None, + free_float_percent_gte: Optional[float] = None, + free_float_percent_lt: Optional[float] = None, + free_float_percent_lte: Optional[float] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None + ) -> HTTPResponse: ... + @overload + def list_stocks_floats( + self, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + free_float_percent: Optional[float] = None, + free_float_percent_gt: Optional[float] = None, + free_float_percent_gte: Optional[float] = None, + free_float_percent_lt: Optional[float] = None, + free_float_percent_lte: Optional[float] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[FinancialFloat], HTTPResponse]: ... def list_stocks_floats( self, ticker: Optional[str] = None, diff --git a/massive/rest/futures.py b/massive/rest/futures.py index 8973c7af..6d6e9d90 100644 --- a/massive/rest/futures.py +++ b/massive/rest/futures.py @@ -1,4 +1,4 @@ -from typing import Optional, Any, Dict, List, Union, Iterator +from typing import Optional, Any, Dict, List, Union, Iterator, Literal, overload from urllib3 import HTTPResponse from datetime import datetime, date @@ -24,6 +24,55 @@ class FuturesClient(BaseClient): (aligned with the paths from /futures/v1/...) """ + @overload + def list_futures_aggregates( + self, + ticker: str, + resolution: Optional[str] = None, + window_start: Optional[str] = None, + window_start_lt: Optional[str] = None, + window_start_lte: Optional[str] = None, + window_start_gt: Optional[str] = None, + window_start_gte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[FuturesAgg]: ... + @overload + def list_futures_aggregates( + self, + ticker: str, + resolution: Optional[str] = None, + window_start: Optional[str] = None, + window_start_lt: Optional[str] = None, + window_start_lte: Optional[str] = None, + window_start_gt: Optional[str] = None, + window_start_gte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_futures_aggregates( + self, + ticker: str, + resolution: Optional[str] = None, + window_start: Optional[str] = None, + window_start_lt: Optional[str] = None, + window_start_lte: Optional[str] = None, + window_start_gt: Optional[str] = None, + window_start_gte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[FuturesAgg], HTTPResponse]: ... def list_futures_aggregates( self, ticker: str, @@ -57,6 +106,124 @@ def list_futures_aggregates( options=options, ) + @overload + def list_futures_contracts( + self, + date: Optional[str] = None, + date_gt: Optional[str] = None, + date_gte: Optional[str] = None, + date_lt: Optional[str] = None, + date_lte: Optional[str] = None, + product_code: Optional[str] = None, + product_code_any_of: Optional[str] = None, + product_code_gt: Optional[str] = None, + product_code_gte: Optional[str] = None, + product_code_lt: Optional[str] = None, + product_code_lte: Optional[str] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + active: Optional[bool] = None, + type: Optional[str] = None, + type_any_of: Optional[str] = None, + first_trade_date: Optional[str] = None, + first_trade_date_gt: Optional[str] = None, + first_trade_date_gte: Optional[str] = None, + first_trade_date_lt: Optional[str] = None, + first_trade_date_lte: Optional[str] = None, + last_trade_date: Optional[str] = None, + last_trade_date_gt: Optional[str] = None, + last_trade_date_gte: Optional[str] = None, + last_trade_date_lt: Optional[str] = None, + last_trade_date_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[FuturesContract]: ... + @overload + def list_futures_contracts( + self, + date: Optional[str] = None, + date_gt: Optional[str] = None, + date_gte: Optional[str] = None, + date_lt: Optional[str] = None, + date_lte: Optional[str] = None, + product_code: Optional[str] = None, + product_code_any_of: Optional[str] = None, + product_code_gt: Optional[str] = None, + product_code_gte: Optional[str] = None, + product_code_lt: Optional[str] = None, + product_code_lte: Optional[str] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + active: Optional[bool] = None, + type: Optional[str] = None, + type_any_of: Optional[str] = None, + first_trade_date: Optional[str] = None, + first_trade_date_gt: Optional[str] = None, + first_trade_date_gte: Optional[str] = None, + first_trade_date_lt: Optional[str] = None, + first_trade_date_lte: Optional[str] = None, + last_trade_date: Optional[str] = None, + last_trade_date_gt: Optional[str] = None, + last_trade_date_gte: Optional[str] = None, + last_trade_date_lt: Optional[str] = None, + last_trade_date_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_futures_contracts( + self, + date: Optional[str] = None, + date_gt: Optional[str] = None, + date_gte: Optional[str] = None, + date_lt: Optional[str] = None, + date_lte: Optional[str] = None, + product_code: Optional[str] = None, + product_code_any_of: Optional[str] = None, + product_code_gt: Optional[str] = None, + product_code_gte: Optional[str] = None, + product_code_lt: Optional[str] = None, + product_code_lte: Optional[str] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + active: Optional[bool] = None, + type: Optional[str] = None, + type_any_of: Optional[str] = None, + first_trade_date: Optional[str] = None, + first_trade_date_gt: Optional[str] = None, + first_trade_date_gte: Optional[str] = None, + first_trade_date_lt: Optional[str] = None, + first_trade_date_lte: Optional[str] = None, + last_trade_date: Optional[str] = None, + last_trade_date_gt: Optional[str] = None, + last_trade_date_gte: Optional[str] = None, + last_trade_date_lt: Optional[str] = None, + last_trade_date_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[FuturesContract], HTTPResponse]: ... def list_futures_contracts( self, date: Optional[str] = None, @@ -109,6 +276,49 @@ def list_futures_contracts( options=options, ) + @overload + def list_futures_products( + self, + name: Optional[str] = None, + name_any_of: Optional[str] = None, + name_gt: Optional[str] = None, + name_gte: Optional[str] = None, + name_lt: Optional[str] = None, + name_lte: Optional[str] = None, + product_code: Optional[str] = None, + product_code_any_of: Optional[str] = None, + product_code_gt: Optional[str] = None, + product_code_gte: Optional[str] = None, + product_code_lt: Optional[str] = None, + product_code_lte: Optional[str] = None, + date: Optional[str] = None, + date_gt: Optional[str] = None, + date_gte: Optional[str] = None, + date_lt: Optional[str] = None, + date_lte: Optional[str] = None, + trading_venue: Optional[str] = None, + trading_venue_any_of: Optional[str] = None, + trading_venue_gt: Optional[str] = None, + trading_venue_gte: Optional[str] = None, + trading_venue_lt: Optional[str] = None, + trading_venue_lte: Optional[str] = None, + sector: Optional[str] = None, + sector_any_of: Optional[str] = None, + sub_sector: Optional[str] = None, + sub_sector_any_of: Optional[str] = None, + asset_class: Optional[str] = None, + asset_class_any_of: Optional[str] = None, + asset_sub_class: Optional[str] = None, + asset_sub_class_any_of: Optional[str] = None, + type: Optional[str] = None, + type_any_of: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[FuturesProduct]: ... + @overload def list_futures_products( self, name: Optional[str] = None, @@ -145,25 +355,170 @@ def list_futures_products( type: Optional[str] = None, type_any_of: Optional[str] = None, limit: Optional[int] = None, - sort: Optional[str] = None, + sort: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_futures_products( + self, + name: Optional[str] = None, + name_any_of: Optional[str] = None, + name_gt: Optional[str] = None, + name_gte: Optional[str] = None, + name_lt: Optional[str] = None, + name_lte: Optional[str] = None, + product_code: Optional[str] = None, + product_code_any_of: Optional[str] = None, + product_code_gt: Optional[str] = None, + product_code_gte: Optional[str] = None, + product_code_lt: Optional[str] = None, + product_code_lte: Optional[str] = None, + date: Optional[str] = None, + date_gt: Optional[str] = None, + date_gte: Optional[str] = None, + date_lt: Optional[str] = None, + date_lte: Optional[str] = None, + trading_venue: Optional[str] = None, + trading_venue_any_of: Optional[str] = None, + trading_venue_gt: Optional[str] = None, + trading_venue_gte: Optional[str] = None, + trading_venue_lt: Optional[str] = None, + trading_venue_lte: Optional[str] = None, + sector: Optional[str] = None, + sector_any_of: Optional[str] = None, + sub_sector: Optional[str] = None, + sub_sector_any_of: Optional[str] = None, + asset_class: Optional[str] = None, + asset_class_any_of: Optional[str] = None, + asset_sub_class: Optional[str] = None, + asset_sub_class_any_of: Optional[str] = None, + type: Optional[str] = None, + type_any_of: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[FuturesProduct], HTTPResponse]: ... + def list_futures_products( + self, + name: Optional[str] = None, + name_any_of: Optional[str] = None, + name_gt: Optional[str] = None, + name_gte: Optional[str] = None, + name_lt: Optional[str] = None, + name_lte: Optional[str] = None, + product_code: Optional[str] = None, + product_code_any_of: Optional[str] = None, + product_code_gt: Optional[str] = None, + product_code_gte: Optional[str] = None, + product_code_lt: Optional[str] = None, + product_code_lte: Optional[str] = None, + date: Optional[str] = None, + date_gt: Optional[str] = None, + date_gte: Optional[str] = None, + date_lt: Optional[str] = None, + date_lte: Optional[str] = None, + trading_venue: Optional[str] = None, + trading_venue_any_of: Optional[str] = None, + trading_venue_gt: Optional[str] = None, + trading_venue_gte: Optional[str] = None, + trading_venue_lt: Optional[str] = None, + trading_venue_lte: Optional[str] = None, + sector: Optional[str] = None, + sector_any_of: Optional[str] = None, + sub_sector: Optional[str] = None, + sub_sector_any_of: Optional[str] = None, + asset_class: Optional[str] = None, + asset_class_any_of: Optional[str] = None, + asset_sub_class: Optional[str] = None, + asset_sub_class_any_of: Optional[str] = None, + type: Optional[str] = None, + type_any_of: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[FuturesProduct], HTTPResponse]: + """ + Endpoint: GET /futures/v1/products + + Returns a list of futures products (including combos). + """ + url = "/futures/v1/products" + return self._paginate( + path=url, + params=self._get_params(self.list_futures_products, locals()), + raw=raw, + deserializer=FuturesProduct.from_dict, + options=options, + ) + + @overload + def list_futures_quotes( + self, + ticker: str, + timestamp: Optional[str] = None, + timestamp_lt: Optional[str] = None, + timestamp_lte: Optional[str] = None, + timestamp_gt: Optional[str] = None, + timestamp_gte: Optional[str] = None, + session_end_date: Optional[str] = None, + session_end_date_lt: Optional[str] = None, + session_end_date_lte: Optional[str] = None, + session_end_date_gt: Optional[str] = None, + session_end_date_gte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[FuturesQuote]: ... + @overload + def list_futures_quotes( + self, + ticker: str, + timestamp: Optional[str] = None, + timestamp_lt: Optional[str] = None, + timestamp_lte: Optional[str] = None, + timestamp_gt: Optional[str] = None, + timestamp_gte: Optional[str] = None, + session_end_date: Optional[str] = None, + session_end_date_lt: Optional[str] = None, + session_end_date_lte: Optional[str] = None, + session_end_date_gt: Optional[str] = None, + session_end_date_gte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_futures_quotes( + self, + ticker: str, + timestamp: Optional[str] = None, + timestamp_lt: Optional[str] = None, + timestamp_lte: Optional[str] = None, + timestamp_gt: Optional[str] = None, + timestamp_gte: Optional[str] = None, + session_end_date: Optional[str] = None, + session_end_date_lt: Optional[str] = None, + session_end_date_lte: Optional[str] = None, + session_end_date_gt: Optional[str] = None, + session_end_date_gte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, params: Optional[Dict[str, Any]] = None, raw: bool = False, options: Optional[RequestOptionBuilder] = None, - ) -> Union[Iterator[FuturesProduct], HTTPResponse]: - """ - Endpoint: GET /futures/v1/products - - Returns a list of futures products (including combos). - """ - url = "/futures/v1/products" - return self._paginate( - path=url, - params=self._get_params(self.list_futures_products, locals()), - raw=raw, - deserializer=FuturesProduct.from_dict, - options=options, - ) - + ) -> Union[Iterator[FuturesQuote], HTTPResponse]: ... def list_futures_quotes( self, ticker: str, @@ -197,6 +552,67 @@ def list_futures_quotes( options=options, ) + @overload + def list_futures_trades( + self, + ticker: str, + timestamp: Optional[str] = None, + timestamp_lt: Optional[str] = None, + timestamp_lte: Optional[str] = None, + timestamp_gt: Optional[str] = None, + timestamp_gte: Optional[str] = None, + session_end_date: Optional[str] = None, + session_end_date_lt: Optional[str] = None, + session_end_date_lte: Optional[str] = None, + session_end_date_gt: Optional[str] = None, + session_end_date_gte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[FuturesTrade]: ... + @overload + def list_futures_trades( + self, + ticker: str, + timestamp: Optional[str] = None, + timestamp_lt: Optional[str] = None, + timestamp_lte: Optional[str] = None, + timestamp_gt: Optional[str] = None, + timestamp_gte: Optional[str] = None, + session_end_date: Optional[str] = None, + session_end_date_lt: Optional[str] = None, + session_end_date_lte: Optional[str] = None, + session_end_date_gt: Optional[str] = None, + session_end_date_gte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_futures_trades( + self, + ticker: str, + timestamp: Optional[str] = None, + timestamp_lt: Optional[str] = None, + timestamp_lte: Optional[str] = None, + timestamp_gt: Optional[str] = None, + timestamp_gte: Optional[str] = None, + session_end_date: Optional[str] = None, + session_end_date_lt: Optional[str] = None, + session_end_date_lte: Optional[str] = None, + session_end_date_gt: Optional[str] = None, + session_end_date_gte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[FuturesTrade], HTTPResponse]: ... def list_futures_trades( self, ticker: str, @@ -230,6 +646,85 @@ def list_futures_trades( options=options, ) + @overload + def list_futures_schedules( + self, + product_code: Optional[str] = None, + product_code_any_of: Optional[str] = None, + product_code_gt: Optional[str] = None, + product_code_gte: Optional[str] = None, + product_code_lt: Optional[str] = None, + product_code_lte: Optional[str] = None, + session_end_date: Optional[str] = None, + session_end_date_gt: Optional[str] = None, + session_end_date_gte: Optional[str] = None, + session_end_date_lt: Optional[str] = None, + session_end_date_lte: Optional[str] = None, + trading_venue: Optional[str] = None, + trading_venue_any_of: Optional[str] = None, + trading_venue_gt: Optional[str] = None, + trading_venue_gte: Optional[str] = None, + trading_venue_lt: Optional[str] = None, + trading_venue_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[FuturesSchedule]: ... + @overload + def list_futures_schedules( + self, + product_code: Optional[str] = None, + product_code_any_of: Optional[str] = None, + product_code_gt: Optional[str] = None, + product_code_gte: Optional[str] = None, + product_code_lt: Optional[str] = None, + product_code_lte: Optional[str] = None, + session_end_date: Optional[str] = None, + session_end_date_gt: Optional[str] = None, + session_end_date_gte: Optional[str] = None, + session_end_date_lt: Optional[str] = None, + session_end_date_lte: Optional[str] = None, + trading_venue: Optional[str] = None, + trading_venue_any_of: Optional[str] = None, + trading_venue_gt: Optional[str] = None, + trading_venue_gte: Optional[str] = None, + trading_venue_lt: Optional[str] = None, + trading_venue_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_futures_schedules( + self, + product_code: Optional[str] = None, + product_code_any_of: Optional[str] = None, + product_code_gt: Optional[str] = None, + product_code_gte: Optional[str] = None, + product_code_lt: Optional[str] = None, + product_code_lte: Optional[str] = None, + session_end_date: Optional[str] = None, + session_end_date_gt: Optional[str] = None, + session_end_date_gte: Optional[str] = None, + session_end_date_lt: Optional[str] = None, + session_end_date_lte: Optional[str] = None, + trading_venue: Optional[str] = None, + trading_venue_any_of: Optional[str] = None, + trading_venue_gt: Optional[str] = None, + trading_venue_gte: Optional[str] = None, + trading_venue_lt: Optional[str] = None, + trading_venue_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[FuturesSchedule], HTTPResponse]: ... def list_futures_schedules( self, product_code: Optional[str] = None, @@ -270,6 +765,49 @@ def list_futures_schedules( options=options, ) + @overload + def list_futures_market_statuses( + self, + product_code: Optional[str] = None, + product_code_any_of: Optional[str] = None, + product_code_gt: Optional[str] = None, + product_code_gte: Optional[str] = None, + product_code_lt: Optional[str] = None, + product_code_lte: Optional[str] = None, + limit: Optional[int] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[FuturesMarketStatus]: ... + @overload + def list_futures_market_statuses( + self, + product_code: Optional[str] = None, + product_code_any_of: Optional[str] = None, + product_code_gt: Optional[str] = None, + product_code_gte: Optional[str] = None, + product_code_lt: Optional[str] = None, + product_code_lte: Optional[str] = None, + limit: Optional[int] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_futures_market_statuses( + self, + product_code: Optional[str] = None, + product_code_any_of: Optional[str] = None, + product_code_gt: Optional[str] = None, + product_code_gte: Optional[str] = None, + product_code_lt: Optional[str] = None, + product_code_lte: Optional[str] = None, + limit: Optional[int] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[FuturesMarketStatus], HTTPResponse]: ... def list_futures_market_statuses( self, product_code: Optional[str] = None, @@ -292,6 +830,70 @@ def list_futures_market_statuses( options=options, ) + @overload + def get_futures_snapshot( + self, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + product_code: Optional[str] = None, + product_code_any_of: Optional[str] = None, + product_code_gt: Optional[str] = None, + product_code_gte: Optional[str] = None, + product_code_lt: Optional[str] = None, + product_code_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[FuturesSnapshot]: ... + @overload + def get_futures_snapshot( + self, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + product_code: Optional[str] = None, + product_code_any_of: Optional[str] = None, + product_code_gt: Optional[str] = None, + product_code_gte: Optional[str] = None, + product_code_lt: Optional[str] = None, + product_code_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def get_futures_snapshot( + self, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + product_code: Optional[str] = None, + product_code_any_of: Optional[str] = None, + product_code_gt: Optional[str] = None, + product_code_gte: Optional[str] = None, + product_code_lt: Optional[str] = None, + product_code_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[FuturesSnapshot], HTTPResponse]: ... def get_futures_snapshot( self, ticker: Optional[str] = None, @@ -321,6 +923,31 @@ def get_futures_snapshot( options=options, ) + @overload + def list_futures_exchanges( + self, + limit: Optional[int] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[FuturesExchange]: ... + @overload + def list_futures_exchanges( + self, + limit: Optional[int] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_futures_exchanges( + self, + limit: Optional[int] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[FuturesExchange], HTTPResponse]: ... def list_futures_exchanges( self, limit: Optional[int] = None, diff --git a/massive/rest/indicators.py b/massive/rest/indicators.py index 88746f62..bdc392b0 100644 --- a/massive/rest/indicators.py +++ b/massive/rest/indicators.py @@ -6,7 +6,7 @@ MACDIndicatorResults, ) from .base import BaseClient -from typing import Optional, Any, Dict, List, Union +from typing import Optional, Any, Dict, List, Union, Literal, overload from .models import Order from urllib3 import HTTPResponse from datetime import datetime, date @@ -15,6 +15,67 @@ class IndicatorsClient(BaseClient): + @overload + def get_sma( + self, + ticker: str, + timestamp: Optional[Union[str, int, datetime, date]] = None, + timestamp_lt: Optional[Union[str, int, datetime, date]] = None, + timestamp_lte: Optional[Union[str, int, datetime, date]] = None, + timestamp_gt: Optional[Union[str, int, datetime, date]] = None, + timestamp_gte: Optional[Union[str, int, datetime, date]] = None, + timespan: Optional[str] = None, + window: Optional[int] = None, + adjusted: Optional[bool] = None, + expand_underlying: Optional[bool] = None, + order: Optional[Union[str, Order]] = None, + limit: Optional[int] = None, + params: Optional[Dict[str, Any]] = None, + series_type: Optional[Union[str, SeriesType]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> SMAIndicatorResults: ... + @overload + def get_sma( + self, + ticker: str, + timestamp: Optional[Union[str, int, datetime, date]] = None, + timestamp_lt: Optional[Union[str, int, datetime, date]] = None, + timestamp_lte: Optional[Union[str, int, datetime, date]] = None, + timestamp_gt: Optional[Union[str, int, datetime, date]] = None, + timestamp_gte: Optional[Union[str, int, datetime, date]] = None, + timespan: Optional[str] = None, + window: Optional[int] = None, + adjusted: Optional[bool] = None, + expand_underlying: Optional[bool] = None, + order: Optional[Union[str, Order]] = None, + limit: Optional[int] = None, + params: Optional[Dict[str, Any]] = None, + series_type: Optional[Union[str, SeriesType]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def get_sma( + self, + ticker: str, + timestamp: Optional[Union[str, int, datetime, date]] = None, + timestamp_lt: Optional[Union[str, int, datetime, date]] = None, + timestamp_lte: Optional[Union[str, int, datetime, date]] = None, + timestamp_gt: Optional[Union[str, int, datetime, date]] = None, + timestamp_gte: Optional[Union[str, int, datetime, date]] = None, + timespan: Optional[str] = None, + window: Optional[int] = None, + adjusted: Optional[bool] = None, + expand_underlying: Optional[bool] = None, + order: Optional[Union[str, Order]] = None, + limit: Optional[int] = None, + params: Optional[Dict[str, Any]] = None, + series_type: Optional[Union[str, SeriesType]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[SMAIndicatorResults, HTTPResponse]: ... def get_sma( self, ticker: str, @@ -70,6 +131,67 @@ def get_sma( options=options, ) + @overload + def get_ema( + self, + ticker: str, + timestamp: Optional[Union[str, int, datetime, date]] = None, + timestamp_lt: Optional[Union[str, int, datetime, date]] = None, + timestamp_lte: Optional[Union[str, int, datetime, date]] = None, + timestamp_gt: Optional[Union[str, int, datetime, date]] = None, + timestamp_gte: Optional[Union[str, int, datetime, date]] = None, + timespan: Optional[str] = None, + window: Optional[int] = None, + adjusted: Optional[bool] = None, + expand_underlying: Optional[bool] = None, + order: Optional[Union[str, Order]] = None, + limit: Optional[int] = None, + params: Optional[Dict[str, Any]] = None, + series_type: Optional[Union[str, SeriesType]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> EMAIndicatorResults: ... + @overload + def get_ema( + self, + ticker: str, + timestamp: Optional[Union[str, int, datetime, date]] = None, + timestamp_lt: Optional[Union[str, int, datetime, date]] = None, + timestamp_lte: Optional[Union[str, int, datetime, date]] = None, + timestamp_gt: Optional[Union[str, int, datetime, date]] = None, + timestamp_gte: Optional[Union[str, int, datetime, date]] = None, + timespan: Optional[str] = None, + window: Optional[int] = None, + adjusted: Optional[bool] = None, + expand_underlying: Optional[bool] = None, + order: Optional[Union[str, Order]] = None, + limit: Optional[int] = None, + params: Optional[Dict[str, Any]] = None, + series_type: Optional[Union[str, SeriesType]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def get_ema( + self, + ticker: str, + timestamp: Optional[Union[str, int, datetime, date]] = None, + timestamp_lt: Optional[Union[str, int, datetime, date]] = None, + timestamp_lte: Optional[Union[str, int, datetime, date]] = None, + timestamp_gt: Optional[Union[str, int, datetime, date]] = None, + timestamp_gte: Optional[Union[str, int, datetime, date]] = None, + timespan: Optional[str] = None, + window: Optional[int] = None, + adjusted: Optional[bool] = None, + expand_underlying: Optional[bool] = None, + order: Optional[Union[str, Order]] = None, + limit: Optional[int] = None, + params: Optional[Dict[str, Any]] = None, + series_type: Optional[Union[str, SeriesType]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[EMAIndicatorResults, HTTPResponse]: ... def get_ema( self, ticker: str, @@ -125,6 +247,67 @@ def get_ema( options=options, ) + @overload + def get_rsi( + self, + ticker: str, + timestamp: Optional[Union[str, int, datetime, date]] = None, + timestamp_lt: Optional[Union[str, int, datetime, date]] = None, + timestamp_lte: Optional[Union[str, int, datetime, date]] = None, + timestamp_gt: Optional[Union[str, int, datetime, date]] = None, + timestamp_gte: Optional[Union[str, int, datetime, date]] = None, + timespan: Optional[str] = None, + window: Optional[int] = None, + adjusted: Optional[bool] = None, + expand_underlying: Optional[bool] = None, + order: Optional[Union[str, Order]] = None, + limit: Optional[int] = None, + params: Optional[Dict[str, Any]] = None, + series_type: Optional[Union[str, SeriesType]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> RSIIndicatorResults: ... + @overload + def get_rsi( + self, + ticker: str, + timestamp: Optional[Union[str, int, datetime, date]] = None, + timestamp_lt: Optional[Union[str, int, datetime, date]] = None, + timestamp_lte: Optional[Union[str, int, datetime, date]] = None, + timestamp_gt: Optional[Union[str, int, datetime, date]] = None, + timestamp_gte: Optional[Union[str, int, datetime, date]] = None, + timespan: Optional[str] = None, + window: Optional[int] = None, + adjusted: Optional[bool] = None, + expand_underlying: Optional[bool] = None, + order: Optional[Union[str, Order]] = None, + limit: Optional[int] = None, + params: Optional[Dict[str, Any]] = None, + series_type: Optional[Union[str, SeriesType]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def get_rsi( + self, + ticker: str, + timestamp: Optional[Union[str, int, datetime, date]] = None, + timestamp_lt: Optional[Union[str, int, datetime, date]] = None, + timestamp_lte: Optional[Union[str, int, datetime, date]] = None, + timestamp_gt: Optional[Union[str, int, datetime, date]] = None, + timestamp_gte: Optional[Union[str, int, datetime, date]] = None, + timespan: Optional[str] = None, + window: Optional[int] = None, + adjusted: Optional[bool] = None, + expand_underlying: Optional[bool] = None, + order: Optional[Union[str, Order]] = None, + limit: Optional[int] = None, + params: Optional[Dict[str, Any]] = None, + series_type: Optional[Union[str, SeriesType]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[RSIIndicatorResults, HTTPResponse]: ... def get_rsi( self, ticker: str, @@ -180,6 +363,73 @@ def get_rsi( options=options, ) + @overload + def get_macd( + self, + ticker: str, + timestamp: Optional[Union[str, int, datetime, date]] = None, + timestamp_lt: Optional[Union[str, int, datetime, date]] = None, + timestamp_lte: Optional[Union[str, int, datetime, date]] = None, + timestamp_gt: Optional[Union[str, int, datetime, date]] = None, + timestamp_gte: Optional[Union[str, int, datetime, date]] = None, + timespan: Optional[str] = None, + short_window: Optional[int] = None, + long_window: Optional[int] = None, + signal_window: Optional[int] = None, + adjusted: Optional[bool] = None, + expand_underlying: Optional[bool] = None, + order: Optional[Union[str, Order]] = None, + limit: Optional[int] = None, + params: Optional[Dict[str, Any]] = None, + series_type: Optional[Union[str, SeriesType]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> MACDIndicatorResults: ... + @overload + def get_macd( + self, + ticker: str, + timestamp: Optional[Union[str, int, datetime, date]] = None, + timestamp_lt: Optional[Union[str, int, datetime, date]] = None, + timestamp_lte: Optional[Union[str, int, datetime, date]] = None, + timestamp_gt: Optional[Union[str, int, datetime, date]] = None, + timestamp_gte: Optional[Union[str, int, datetime, date]] = None, + timespan: Optional[str] = None, + short_window: Optional[int] = None, + long_window: Optional[int] = None, + signal_window: Optional[int] = None, + adjusted: Optional[bool] = None, + expand_underlying: Optional[bool] = None, + order: Optional[Union[str, Order]] = None, + limit: Optional[int] = None, + params: Optional[Dict[str, Any]] = None, + series_type: Optional[Union[str, SeriesType]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def get_macd( + self, + ticker: str, + timestamp: Optional[Union[str, int, datetime, date]] = None, + timestamp_lt: Optional[Union[str, int, datetime, date]] = None, + timestamp_lte: Optional[Union[str, int, datetime, date]] = None, + timestamp_gt: Optional[Union[str, int, datetime, date]] = None, + timestamp_gte: Optional[Union[str, int, datetime, date]] = None, + timespan: Optional[str] = None, + short_window: Optional[int] = None, + long_window: Optional[int] = None, + signal_window: Optional[int] = None, + adjusted: Optional[bool] = None, + expand_underlying: Optional[bool] = None, + order: Optional[Union[str, Order]] = None, + limit: Optional[int] = None, + params: Optional[Dict[str, Any]] = None, + series_type: Optional[Union[str, SeriesType]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[MACDIndicatorResults, HTTPResponse]: ... def get_macd( self, ticker: str, diff --git a/massive/rest/quotes.py b/massive/rest/quotes.py index 353c21e1..48285aeb 100644 --- a/massive/rest/quotes.py +++ b/massive/rest/quotes.py @@ -1,5 +1,5 @@ from .base import BaseClient -from typing import Optional, Any, Dict, Union, Iterator +from typing import Optional, Any, Dict, Union, Iterator, Literal, overload from .models import ( Quote, LastQuote, @@ -17,6 +17,55 @@ # https://massive.com/docs/stocks class QuotesClient(BaseClient): + @overload + def list_quotes( + self, + ticker: str, + timestamp: Optional[Union[str, int, datetime, date]] = None, + timestamp_lt: Optional[Union[str, int, datetime, date]] = None, + timestamp_lte: Optional[Union[str, int, datetime, date]] = None, + timestamp_gt: Optional[Union[str, int, datetime, date]] = None, + timestamp_gte: Optional[Union[str, int, datetime, date]] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[Quote]: ... + @overload + def list_quotes( + self, + ticker: str, + timestamp: Optional[Union[str, int, datetime, date]] = None, + timestamp_lt: Optional[Union[str, int, datetime, date]] = None, + timestamp_lte: Optional[Union[str, int, datetime, date]] = None, + timestamp_gt: Optional[Union[str, int, datetime, date]] = None, + timestamp_gte: Optional[Union[str, int, datetime, date]] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_quotes( + self, + ticker: str, + timestamp: Optional[Union[str, int, datetime, date]] = None, + timestamp_lt: Optional[Union[str, int, datetime, date]] = None, + timestamp_lte: Optional[Union[str, int, datetime, date]] = None, + timestamp_gt: Optional[Union[str, int, datetime, date]] = None, + timestamp_gte: Optional[Union[str, int, datetime, date]] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[Quote], HTTPResponse]: ... def list_quotes( self, ticker: str, @@ -58,6 +107,31 @@ def list_quotes( options=options, ) + @overload + def get_last_quote( + self, + ticker: str, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> LastQuote: ... + @overload + def get_last_quote( + self, + ticker: str, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def get_last_quote( + self, + ticker: str, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[LastQuote, HTTPResponse]: ... def get_last_quote( self, ticker: str, @@ -84,6 +158,34 @@ def get_last_quote( options=options, ) + @overload + def get_last_forex_quote( + self, + from_: str, + to: str, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> LastForexQuote: ... + @overload + def get_last_forex_quote( + self, + from_: str, + to: str, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def get_last_forex_quote( + self, + from_: str, + to: str, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[LastForexQuote, HTTPResponse]: ... def get_last_forex_quote( self, from_: str, @@ -111,6 +213,40 @@ def get_last_forex_quote( options=options, ) + @overload + def get_real_time_currency_conversion( + self, + from_: str, + to: str, + amount: Optional[float] = None, + precision: Union[int, Precision] = 2, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> RealTimeCurrencyConversion: ... + @overload + def get_real_time_currency_conversion( + self, + from_: str, + to: str, + amount: Optional[float] = None, + precision: Union[int, Precision] = 2, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def get_real_time_currency_conversion( + self, + from_: str, + to: str, + amount: Optional[float] = None, + precision: Union[int, Precision] = 2, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[RealTimeCurrencyConversion, HTTPResponse]: ... def get_real_time_currency_conversion( self, from_: str, diff --git a/massive/rest/reference.py b/massive/rest/reference.py index 12525548..c31a8cdc 100644 --- a/massive/rest/reference.py +++ b/massive/rest/reference.py @@ -1,5 +1,5 @@ from .base import BaseClient -from typing import Optional, Any, Dict, List, Union, Iterator +from typing import Optional, Any, Dict, List, Union, Iterator, Literal, overload from .models import ( MarketHoliday, MarketStatus, @@ -44,6 +44,18 @@ class MarketsClient(BaseClient): + @overload + def get_market_holidays( + self, params: Optional[Dict[str, Any]] = None, raw: Literal[False] = False + ) -> List[MarketHoliday]: ... + @overload + def get_market_holidays( + self, params: Optional[Dict[str, Any]] = None, *, raw: Literal[True] + ) -> HTTPResponse: ... + @overload + def get_market_holidays( + self, params: Optional[Dict[str, Any]] = None, raw: bool = False + ) -> Union[List[MarketHoliday], HTTPResponse]: ... def get_market_holidays( self, params: Optional[Dict[str, Any]] = None, raw: bool = False ) -> Union[List[MarketHoliday], HTTPResponse]: @@ -64,6 +76,18 @@ def get_market_holidays( result_key="", ) + @overload + def get_market_status( + self, params: Optional[Dict[str, Any]] = None, raw: Literal[False] = False + ) -> MarketStatus: ... + @overload + def get_market_status( + self, params: Optional[Dict[str, Any]] = None, *, raw: Literal[True] + ) -> HTTPResponse: ... + @overload + def get_market_status( + self, params: Optional[Dict[str, Any]] = None, raw: bool = False + ) -> Union[MarketStatus, HTTPResponse]: ... def get_market_status( self, params: Optional[Dict[str, Any]] = None, raw: bool = False ) -> Union[MarketStatus, HTTPResponse]: @@ -82,6 +106,76 @@ def get_market_status( class TickersClient(BaseClient): + @overload + def list_tickers( + self, + ticker: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + type: Optional[str] = None, + market: Optional[str] = None, + exchange: Optional[str] = None, + cusip: Optional[Union[int, str]] = None, + cik: Optional[int] = None, + date: Optional[str] = None, + active: Optional[bool] = None, + search: Optional[str] = None, + limit: Optional[int] = 10, + sort: Optional[Union[str, Sort]] = "ticker", + order: Optional[Union[str, Order]] = "asc", + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[Ticker]: ... + @overload + def list_tickers( + self, + ticker: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + type: Optional[str] = None, + market: Optional[str] = None, + exchange: Optional[str] = None, + cusip: Optional[Union[int, str]] = None, + cik: Optional[int] = None, + date: Optional[str] = None, + active: Optional[bool] = None, + search: Optional[str] = None, + limit: Optional[int] = 10, + sort: Optional[Union[str, Sort]] = "ticker", + order: Optional[Union[str, Order]] = "asc", + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_tickers( + self, + ticker: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + type: Optional[str] = None, + market: Optional[str] = None, + exchange: Optional[str] = None, + cusip: Optional[Union[int, str]] = None, + cik: Optional[int] = None, + date: Optional[str] = None, + active: Optional[bool] = None, + search: Optional[str] = None, + limit: Optional[int] = 10, + sort: Optional[Union[str, Sort]] = "ticker", + order: Optional[Union[str, Order]] = "asc", + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[Ticker], HTTPResponse]: ... def list_tickers( self, ticker: Optional[str] = None, @@ -137,6 +231,34 @@ def list_tickers( options=options, ) + @overload + def get_ticker_details( + self, + ticker: Optional[str] = None, + date: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> TickerDetails: ... + @overload + def get_ticker_details( + self, + ticker: Optional[str] = None, + date: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def get_ticker_details( + self, + ticker: Optional[str] = None, + date: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[TickerDetails, HTTPResponse]: ... def get_ticker_details( self, ticker: Optional[str] = None, @@ -165,6 +287,34 @@ def get_ticker_details( options=options, ) + @overload + def get_ticker_events( + self, + ticker: str, + types: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> TickerChangeResults: ... + @overload + def get_ticker_events( + self, + ticker: str, + types: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def get_ticker_events( + self, + ticker: str, + types: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[TickerChangeResults, HTTPResponse]: ... def get_ticker_events( self, ticker: str, @@ -191,6 +341,67 @@ def get_ticker_events( options=options, ) + @overload + def list_ticker_news( + self, + ticker: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + published_utc: Optional[str] = None, + published_utc_lt: Optional[str] = None, + published_utc_lte: Optional[str] = None, + published_utc_gt: Optional[str] = None, + published_utc_gte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[TickerNews]: ... + @overload + def list_ticker_news( + self, + ticker: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + published_utc: Optional[str] = None, + published_utc_lt: Optional[str] = None, + published_utc_lte: Optional[str] = None, + published_utc_gt: Optional[str] = None, + published_utc_gte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_ticker_news( + self, + ticker: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + published_utc: Optional[str] = None, + published_utc_lt: Optional[str] = None, + published_utc_lte: Optional[str] = None, + published_utc_gt: Optional[str] = None, + published_utc_gte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[TickerNews], HTTPResponse]: ... def list_ticker_news( self, ticker: Optional[str] = None, @@ -232,6 +443,34 @@ def list_ticker_news( options=options, ) + @overload + def get_ticker_types( + self, + asset_class: Optional[Union[str, AssetClass]] = None, + locale: Optional[Union[str, Locale]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> List[TickerTypes]: ... + @overload + def get_ticker_types( + self, + asset_class: Optional[Union[str, AssetClass]] = None, + locale: Optional[Union[str, Locale]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def get_ticker_types( + self, + asset_class: Optional[Union[str, AssetClass]] = None, + locale: Optional[Union[str, Locale]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[List[TickerTypes], HTTPResponse]: ... def get_ticker_types( self, asset_class: Optional[Union[str, AssetClass]] = None, @@ -260,6 +499,31 @@ def get_ticker_types( options=options, ) + @overload + def get_related_companies( + self, + ticker: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> RelatedCompany: ... + @overload + def get_related_companies( + self, + ticker: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def get_related_companies( + self, + ticker: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[RelatedCompany, HTTPResponse]: ... def get_related_companies( self, ticker: Optional[str] = None, @@ -288,6 +552,70 @@ def get_related_companies( class SplitsClient(BaseClient): + @overload + def list_splits( + self, + ticker: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + execution_date: Optional[Union[str, date]] = None, + execution_date_lt: Optional[Union[str, date]] = None, + execution_date_lte: Optional[Union[str, date]] = None, + execution_date_gt: Optional[Union[str, date]] = None, + execution_date_gte: Optional[Union[str, date]] = None, + reverse_split: Optional[bool] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[Split]: ... + @overload + def list_splits( + self, + ticker: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + execution_date: Optional[Union[str, date]] = None, + execution_date_lt: Optional[Union[str, date]] = None, + execution_date_lte: Optional[Union[str, date]] = None, + execution_date_gt: Optional[Union[str, date]] = None, + execution_date_gte: Optional[Union[str, date]] = None, + reverse_split: Optional[bool] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_splits( + self, + ticker: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + execution_date: Optional[Union[str, date]] = None, + execution_date_lt: Optional[Union[str, date]] = None, + execution_date_lte: Optional[Union[str, date]] = None, + execution_date_gt: Optional[Union[str, date]] = None, + execution_date_gte: Optional[Union[str, date]] = None, + reverse_split: Optional[bool] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[Split], HTTPResponse]: ... def list_splits( self, ticker: Optional[str] = None, @@ -341,6 +669,7 @@ def list_splits( class DividendsClient(BaseClient): + @overload def list_dividends( self, ticker: Optional[str] = None, @@ -379,14 +708,140 @@ def list_dividends( sort: Optional[Union[str, Sort]] = None, order: Optional[Union[str, Order]] = None, params: Optional[Dict[str, Any]] = None, - raw: bool = False, + raw: Literal[False] = False, options: Optional[RequestOptionBuilder] = None, - ) -> Union[Iterator[Dividend], HTTPResponse]: - """ - Get a list of historical cash dividends, including the ticker symbol, declaration date, ex-dividend date, record date, pay date, frequency, and amount. - - :param ticker: Return the dividends that contain this ticker. - :param ticker_lt: Ticker less than. + ) -> Iterator[Dividend]: ... + @overload + def list_dividends( + self, + ticker: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ex_dividend_date: Optional[Union[str, date]] = None, + ex_dividend_date_lt: Optional[Union[str, date]] = None, + ex_dividend_date_lte: Optional[Union[str, date]] = None, + ex_dividend_date_gt: Optional[Union[str, date]] = None, + ex_dividend_date_gte: Optional[Union[str, date]] = None, + record_date: Optional[Union[str, date]] = None, + record_date_lt: Optional[Union[str, date]] = None, + record_date_lte: Optional[Union[str, date]] = None, + record_date_gt: Optional[Union[str, date]] = None, + record_date_gte: Optional[Union[str, date]] = None, + declaration_date: Optional[Union[str, date]] = None, + declaration_date_lt: Optional[Union[str, date]] = None, + declaration_date_lte: Optional[Union[str, date]] = None, + declaration_date_gt: Optional[Union[str, date]] = None, + declaration_date_gte: Optional[Union[str, date]] = None, + pay_date: Optional[Union[str, date]] = None, + pay_date_lt: Optional[Union[str, date]] = None, + pay_date_lte: Optional[Union[str, date]] = None, + pay_date_gt: Optional[Union[str, date]] = None, + pay_date_gte: Optional[Union[str, date]] = None, + frequency: Optional[Union[int, Frequency]] = None, + cash_amount: Optional[float] = None, + cash_amount_lt: Optional[float] = None, + cash_amount_lte: Optional[float] = None, + cash_amount_gt: Optional[float] = None, + cash_amount_gte: Optional[float] = None, + dividend_type: Optional[Union[str, DividendType]] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_dividends( + self, + ticker: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ex_dividend_date: Optional[Union[str, date]] = None, + ex_dividend_date_lt: Optional[Union[str, date]] = None, + ex_dividend_date_lte: Optional[Union[str, date]] = None, + ex_dividend_date_gt: Optional[Union[str, date]] = None, + ex_dividend_date_gte: Optional[Union[str, date]] = None, + record_date: Optional[Union[str, date]] = None, + record_date_lt: Optional[Union[str, date]] = None, + record_date_lte: Optional[Union[str, date]] = None, + record_date_gt: Optional[Union[str, date]] = None, + record_date_gte: Optional[Union[str, date]] = None, + declaration_date: Optional[Union[str, date]] = None, + declaration_date_lt: Optional[Union[str, date]] = None, + declaration_date_lte: Optional[Union[str, date]] = None, + declaration_date_gt: Optional[Union[str, date]] = None, + declaration_date_gte: Optional[Union[str, date]] = None, + pay_date: Optional[Union[str, date]] = None, + pay_date_lt: Optional[Union[str, date]] = None, + pay_date_lte: Optional[Union[str, date]] = None, + pay_date_gt: Optional[Union[str, date]] = None, + pay_date_gte: Optional[Union[str, date]] = None, + frequency: Optional[Union[int, Frequency]] = None, + cash_amount: Optional[float] = None, + cash_amount_lt: Optional[float] = None, + cash_amount_lte: Optional[float] = None, + cash_amount_gt: Optional[float] = None, + cash_amount_gte: Optional[float] = None, + dividend_type: Optional[Union[str, DividendType]] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[Dividend], HTTPResponse]: ... + def list_dividends( + self, + ticker: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ex_dividend_date: Optional[Union[str, date]] = None, + ex_dividend_date_lt: Optional[Union[str, date]] = None, + ex_dividend_date_lte: Optional[Union[str, date]] = None, + ex_dividend_date_gt: Optional[Union[str, date]] = None, + ex_dividend_date_gte: Optional[Union[str, date]] = None, + record_date: Optional[Union[str, date]] = None, + record_date_lt: Optional[Union[str, date]] = None, + record_date_lte: Optional[Union[str, date]] = None, + record_date_gt: Optional[Union[str, date]] = None, + record_date_gte: Optional[Union[str, date]] = None, + declaration_date: Optional[Union[str, date]] = None, + declaration_date_lt: Optional[Union[str, date]] = None, + declaration_date_lte: Optional[Union[str, date]] = None, + declaration_date_gt: Optional[Union[str, date]] = None, + declaration_date_gte: Optional[Union[str, date]] = None, + pay_date: Optional[Union[str, date]] = None, + pay_date_lt: Optional[Union[str, date]] = None, + pay_date_lte: Optional[Union[str, date]] = None, + pay_date_gt: Optional[Union[str, date]] = None, + pay_date_gte: Optional[Union[str, date]] = None, + frequency: Optional[Union[int, Frequency]] = None, + cash_amount: Optional[float] = None, + cash_amount_lt: Optional[float] = None, + cash_amount_lte: Optional[float] = None, + cash_amount_gt: Optional[float] = None, + cash_amount_gte: Optional[float] = None, + dividend_type: Optional[Union[str, DividendType]] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[Dividend], HTTPResponse]: + """ + Get a list of historical cash dividends, including the ticker symbol, declaration date, ex-dividend date, record date, pay date, frequency, and amount. + + :param ticker: Return the dividends that contain this ticker. + :param ticker_lt: Ticker less than. :param ticker_lte: Ticker less than or equal to. :param ticker_gt: Ticker greater than. :param ticker_gte: Ticker greater than or equal to. @@ -432,6 +887,49 @@ def list_dividends( class ConditionsClient(BaseClient): + @overload + def list_conditions( + self, + asset_class: Optional[Union[str, AssetClass]] = None, + data_type: Optional[Union[str, DataType]] = None, + id: Optional[int] = None, + sip: Optional[Union[str, SIP]] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[Condition]: ... + @overload + def list_conditions( + self, + asset_class: Optional[Union[str, AssetClass]] = None, + data_type: Optional[Union[str, DataType]] = None, + id: Optional[int] = None, + sip: Optional[Union[str, SIP]] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_conditions( + self, + asset_class: Optional[Union[str, AssetClass]] = None, + data_type: Optional[Union[str, DataType]] = None, + id: Optional[int] = None, + sip: Optional[Union[str, SIP]] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[Condition], HTTPResponse]: ... def list_conditions( self, asset_class: Optional[Union[str, AssetClass]] = None, @@ -471,6 +969,34 @@ def list_conditions( class ExchangesClient(BaseClient): + @overload + def get_exchanges( + self, + asset_class: Optional[Union[str, AssetClass]] = None, + locale: Optional[Union[str, Locale]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> List[Exchange]: ... + @overload + def get_exchanges( + self, + asset_class: Optional[Union[str, AssetClass]] = None, + locale: Optional[Union[str, Locale]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def get_exchanges( + self, + asset_class: Optional[Union[str, AssetClass]] = None, + locale: Optional[Union[str, Locale]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[List[Exchange], HTTPResponse]: ... def get_exchanges( self, asset_class: Optional[Union[str, AssetClass]] = None, @@ -501,6 +1027,34 @@ def get_exchanges( class ContractsClient(BaseClient): + @overload + def get_options_contract( + self, + ticker: str, + as_of: Optional[Union[str, date]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> OptionsContract: ... + @overload + def get_options_contract( + self, + ticker: str, + as_of: Optional[Union[str, date]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def get_options_contract( + self, + ticker: str, + as_of: Optional[Union[str, date]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[OptionsContract, HTTPResponse]: ... def get_options_contract( self, ticker: str, @@ -529,6 +1083,7 @@ def get_options_contract( options=options, ) + @overload def list_options_contracts( self, underlying_ticker: Optional[str] = None, @@ -553,66 +1108,229 @@ def list_options_contracts( sort: Optional[Union[str, Sort]] = None, order: Optional[Union[str, Order]] = None, params: Optional[Dict[str, Any]] = None, - raw: bool = False, + raw: Literal[False] = False, options: Optional[RequestOptionBuilder] = None, - ) -> Union[Iterator[OptionsContract], HTTPResponse]: - """ - List historical options contracts. - - :param underlying_ticker: Query for contracts relating to an underlying stock ticker. - :param contract_type: Query by the type of contract. - :param expiration_date: Query by contract expiration with date format YYYY-MM-DD. - :param as_of: Specify a point in time for contracts as of this date with format YYYY-MM-DD. - :param strike_price: Query by strike price of a contract. - :param expired: Query for expired contracts. - :param limit: Limit the number of results returned per-page, default is 10 and max is 1000. - :param sort: Sort field used for ordering. - :param order: Order results based on the sort field. - :param params: Any additional query params. - :param raw: Return raw object instead of results object - :return: List of options contracts. - """ - url = "/v3/reference/options/contracts" - - return self._paginate( - path=url, - params=self._get_params(self.list_options_contracts, locals()), - raw=raw, - deserializer=OptionsContract.from_dict, - options=options, - ) - - def list_short_interest( + ) -> Iterator[OptionsContract]: ... + @overload + def list_options_contracts( self, - ticker: Optional[str] = None, - days_to_cover: Optional[str] = None, - days_to_cover_lt: Optional[str] = None, - days_to_cover_lte: Optional[str] = None, - days_to_cover_gt: Optional[str] = None, - days_to_cover_gte: Optional[str] = None, - settlement_date: Optional[str] = None, - settlement_date_lt: Optional[str] = None, - settlement_date_lte: Optional[str] = None, - settlement_date_gt: Optional[str] = None, - settlement_date_gte: Optional[str] = None, - avg_daily_volume: Optional[str] = None, - avg_daily_volume_lt: Optional[str] = None, - avg_daily_volume_lte: Optional[str] = None, - avg_daily_volume_gt: Optional[str] = None, - avg_daily_volume_gte: Optional[str] = None, - limit: Optional[int] = None, - sort: Optional[Union[str, Sort]] = None, - order: Optional[Union[str, Order]] = None, - params: Optional[Dict[str, Any]] = None, - raw: bool = False, - options: Optional[RequestOptionBuilder] = None, - ) -> Union[Iterator[ShortInterest], HTTPResponse]: - """ - Retrieve short interest data for stocks. - - :param ticker: Filter by the primary ticker symbol. - :param days_to_cover: Filter by the days to cover value. - :param days_to_cover_lt: Filter for days to cover dates less than the provided date. + underlying_ticker: Optional[str] = None, + underlying_ticker_lt: Optional[str] = None, + underlying_ticker_lte: Optional[str] = None, + underlying_ticker_gt: Optional[str] = None, + underlying_ticker_gte: Optional[str] = None, + contract_type: Optional[str] = None, + expiration_date: Optional[Union[str, date]] = None, + expiration_date_lt: Optional[Union[str, date]] = None, + expiration_date_lte: Optional[Union[str, date]] = None, + expiration_date_gt: Optional[Union[str, date]] = None, + expiration_date_gte: Optional[Union[str, date]] = None, + as_of: Optional[Union[str, date]] = None, + strike_price: Optional[float] = None, + strike_price_lt: Optional[float] = None, + strike_price_lte: Optional[float] = None, + strike_price_gt: Optional[float] = None, + strike_price_gte: Optional[float] = None, + expired: Optional[bool] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_options_contracts( + self, + underlying_ticker: Optional[str] = None, + underlying_ticker_lt: Optional[str] = None, + underlying_ticker_lte: Optional[str] = None, + underlying_ticker_gt: Optional[str] = None, + underlying_ticker_gte: Optional[str] = None, + contract_type: Optional[str] = None, + expiration_date: Optional[Union[str, date]] = None, + expiration_date_lt: Optional[Union[str, date]] = None, + expiration_date_lte: Optional[Union[str, date]] = None, + expiration_date_gt: Optional[Union[str, date]] = None, + expiration_date_gte: Optional[Union[str, date]] = None, + as_of: Optional[Union[str, date]] = None, + strike_price: Optional[float] = None, + strike_price_lt: Optional[float] = None, + strike_price_lte: Optional[float] = None, + strike_price_gt: Optional[float] = None, + strike_price_gte: Optional[float] = None, + expired: Optional[bool] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[OptionsContract], HTTPResponse]: ... + def list_options_contracts( + self, + underlying_ticker: Optional[str] = None, + underlying_ticker_lt: Optional[str] = None, + underlying_ticker_lte: Optional[str] = None, + underlying_ticker_gt: Optional[str] = None, + underlying_ticker_gte: Optional[str] = None, + contract_type: Optional[str] = None, + expiration_date: Optional[Union[str, date]] = None, + expiration_date_lt: Optional[Union[str, date]] = None, + expiration_date_lte: Optional[Union[str, date]] = None, + expiration_date_gt: Optional[Union[str, date]] = None, + expiration_date_gte: Optional[Union[str, date]] = None, + as_of: Optional[Union[str, date]] = None, + strike_price: Optional[float] = None, + strike_price_lt: Optional[float] = None, + strike_price_lte: Optional[float] = None, + strike_price_gt: Optional[float] = None, + strike_price_gte: Optional[float] = None, + expired: Optional[bool] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[OptionsContract], HTTPResponse]: + """ + List historical options contracts. + + :param underlying_ticker: Query for contracts relating to an underlying stock ticker. + :param contract_type: Query by the type of contract. + :param expiration_date: Query by contract expiration with date format YYYY-MM-DD. + :param as_of: Specify a point in time for contracts as of this date with format YYYY-MM-DD. + :param strike_price: Query by strike price of a contract. + :param expired: Query for expired contracts. + :param limit: Limit the number of results returned per-page, default is 10 and max is 1000. + :param sort: Sort field used for ordering. + :param order: Order results based on the sort field. + :param params: Any additional query params. + :param raw: Return raw object instead of results object + :return: List of options contracts. + """ + url = "/v3/reference/options/contracts" + + return self._paginate( + path=url, + params=self._get_params(self.list_options_contracts, locals()), + raw=raw, + deserializer=OptionsContract.from_dict, + options=options, + ) + + @overload + def list_short_interest( + self, + ticker: Optional[str] = None, + days_to_cover: Optional[str] = None, + days_to_cover_lt: Optional[str] = None, + days_to_cover_lte: Optional[str] = None, + days_to_cover_gt: Optional[str] = None, + days_to_cover_gte: Optional[str] = None, + settlement_date: Optional[str] = None, + settlement_date_lt: Optional[str] = None, + settlement_date_lte: Optional[str] = None, + settlement_date_gt: Optional[str] = None, + settlement_date_gte: Optional[str] = None, + avg_daily_volume: Optional[str] = None, + avg_daily_volume_lt: Optional[str] = None, + avg_daily_volume_lte: Optional[str] = None, + avg_daily_volume_gt: Optional[str] = None, + avg_daily_volume_gte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[ShortInterest]: ... + @overload + def list_short_interest( + self, + ticker: Optional[str] = None, + days_to_cover: Optional[str] = None, + days_to_cover_lt: Optional[str] = None, + days_to_cover_lte: Optional[str] = None, + days_to_cover_gt: Optional[str] = None, + days_to_cover_gte: Optional[str] = None, + settlement_date: Optional[str] = None, + settlement_date_lt: Optional[str] = None, + settlement_date_lte: Optional[str] = None, + settlement_date_gt: Optional[str] = None, + settlement_date_gte: Optional[str] = None, + avg_daily_volume: Optional[str] = None, + avg_daily_volume_lt: Optional[str] = None, + avg_daily_volume_lte: Optional[str] = None, + avg_daily_volume_gt: Optional[str] = None, + avg_daily_volume_gte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_short_interest( + self, + ticker: Optional[str] = None, + days_to_cover: Optional[str] = None, + days_to_cover_lt: Optional[str] = None, + days_to_cover_lte: Optional[str] = None, + days_to_cover_gt: Optional[str] = None, + days_to_cover_gte: Optional[str] = None, + settlement_date: Optional[str] = None, + settlement_date_lt: Optional[str] = None, + settlement_date_lte: Optional[str] = None, + settlement_date_gt: Optional[str] = None, + settlement_date_gte: Optional[str] = None, + avg_daily_volume: Optional[str] = None, + avg_daily_volume_lt: Optional[str] = None, + avg_daily_volume_lte: Optional[str] = None, + avg_daily_volume_gt: Optional[str] = None, + avg_daily_volume_gte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[ShortInterest], HTTPResponse]: ... + def list_short_interest( + self, + ticker: Optional[str] = None, + days_to_cover: Optional[str] = None, + days_to_cover_lt: Optional[str] = None, + days_to_cover_lte: Optional[str] = None, + days_to_cover_gt: Optional[str] = None, + days_to_cover_gte: Optional[str] = None, + settlement_date: Optional[str] = None, + settlement_date_lt: Optional[str] = None, + settlement_date_lte: Optional[str] = None, + settlement_date_gt: Optional[str] = None, + settlement_date_gte: Optional[str] = None, + avg_daily_volume: Optional[str] = None, + avg_daily_volume_lt: Optional[str] = None, + avg_daily_volume_lte: Optional[str] = None, + avg_daily_volume_gt: Optional[str] = None, + avg_daily_volume_gte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[ShortInterest], HTTPResponse]: + """ + Retrieve short interest data for stocks. + + :param ticker: Filter by the primary ticker symbol. + :param days_to_cover: Filter by the days to cover value. + :param days_to_cover_lt: Filter for days to cover dates less than the provided date. :param days_to_cover_lte: Filter for days to cover dates less than or equal to the provided date. :param days_to_cover_gt: Filter for days to cover dates greater than the provided date. :param days_to_cover_gte: Filter for days to cover dates greater than or equal to the provided date. @@ -645,6 +1363,7 @@ def list_short_interest( options=options, ) + @overload def list_short_volume( self, ticker: Optional[str] = None, @@ -667,61 +1386,206 @@ def list_short_volume( sort: Optional[Union[str, Sort]] = None, order: Optional[Union[str, Order]] = None, params: Optional[Dict[str, Any]] = None, - raw: bool = False, + raw: Literal[False] = False, options: Optional[RequestOptionBuilder] = None, - ) -> Union[Iterator[ShortVolume], HTTPResponse]: - """ - Retrieve short volume data for stocks. - - :param ticker: Filter by the primary ticker symbol. - :param date: Filter by the date of trade activity (YYYY-MM-DD). - :param date_lt: Filter for dates less than the provided date. - :param date_lte: Filter for dates less than or equal to the provided date. - :param date_gt: Filter for dates greater than the provided date. - :param date_gte: Filter for dates greater than or equal to the provided date. - :param short_volume_ratio: Filter by short volume ratio. - :param short_volume_ratio_lt: Filter for short volume ratio less than the provided date. - :param short_volume_ratio_lte: Filter for short volume ratio less than or equal to the provided date. - :param short_volume_ratio_gt: Filter for short volume ratio greater than the provided date. - :param short_volume_ratio_gte: Filter for short volume ratio greater than or equal to the provided date. - :param total_volume: Filter by total volume. - :param total_volume_lt: Filter for total volume less than the provided date. - :param total_volume_lte: Filter for total volume less than or equal to the provided date. - :param total_volume_gt: Filter for total volume greater than the provided date. - :param total_volume_gte: Filter for total volume greater than or equal to the provided date. - :param limit: Limit the number of results returned. Default 10, max 50000. - :param sort: Field to sort by (e.g., "ticker"). - :param order: Order results based on the sort field ("asc" or "desc"). Default "desc". - :param params: Additional query parameters. - :param raw: Return raw HTTPResponse object if True, else return List[ShortVolume]. - :param options: RequestOptionBuilder for additional headers or params. - :return: An iterator of ShortVolume objects or HTTPResponse if raw=True. - """ - url = "/stocks/v1/short-volume" - - return self._paginate( - path=url, - params=self._get_params(self.list_short_volume, locals()), - deserializer=ShortVolume.from_dict, - raw=raw, - result_key="results", - options=options, - ) - - # Add these functions to financials.py in the FinancialsClient class - - def list_stocks_splits( + ) -> Iterator[ShortVolume]: ... + @overload + def list_short_volume( self, ticker: Optional[str] = None, - ticker_any_of: Optional[str] = None, - ticker_gt: Optional[str] = None, - ticker_gte: Optional[str] = None, - ticker_lt: Optional[str] = None, - ticker_lte: Optional[str] = None, - execution_date: Optional[Union[str, date]] = None, - execution_date_gt: Optional[Union[str, date]] = None, - execution_date_gte: Optional[Union[str, date]] = None, - execution_date_lt: Optional[Union[str, date]] = None, + date: Optional[str] = None, + date_lt: Optional[str] = None, + date_lte: Optional[str] = None, + date_gt: Optional[str] = None, + date_gte: Optional[str] = None, + short_volume_ratio: Optional[str] = None, + short_volume_ratio_lt: Optional[str] = None, + short_volume_ratio_lte: Optional[str] = None, + short_volume_ratio_gt: Optional[str] = None, + short_volume_ratio_gte: Optional[str] = None, + total_volume: Optional[str] = None, + total_volume_lt: Optional[str] = None, + total_volume_lte: Optional[str] = None, + total_volume_gt: Optional[str] = None, + total_volume_gte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_short_volume( + self, + ticker: Optional[str] = None, + date: Optional[str] = None, + date_lt: Optional[str] = None, + date_lte: Optional[str] = None, + date_gt: Optional[str] = None, + date_gte: Optional[str] = None, + short_volume_ratio: Optional[str] = None, + short_volume_ratio_lt: Optional[str] = None, + short_volume_ratio_lte: Optional[str] = None, + short_volume_ratio_gt: Optional[str] = None, + short_volume_ratio_gte: Optional[str] = None, + total_volume: Optional[str] = None, + total_volume_lt: Optional[str] = None, + total_volume_lte: Optional[str] = None, + total_volume_gt: Optional[str] = None, + total_volume_gte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[ShortVolume], HTTPResponse]: ... + def list_short_volume( + self, + ticker: Optional[str] = None, + date: Optional[str] = None, + date_lt: Optional[str] = None, + date_lte: Optional[str] = None, + date_gt: Optional[str] = None, + date_gte: Optional[str] = None, + short_volume_ratio: Optional[str] = None, + short_volume_ratio_lt: Optional[str] = None, + short_volume_ratio_lte: Optional[str] = None, + short_volume_ratio_gt: Optional[str] = None, + short_volume_ratio_gte: Optional[str] = None, + total_volume: Optional[str] = None, + total_volume_lt: Optional[str] = None, + total_volume_lte: Optional[str] = None, + total_volume_gt: Optional[str] = None, + total_volume_gte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[ShortVolume], HTTPResponse]: + """ + Retrieve short volume data for stocks. + + :param ticker: Filter by the primary ticker symbol. + :param date: Filter by the date of trade activity (YYYY-MM-DD). + :param date_lt: Filter for dates less than the provided date. + :param date_lte: Filter for dates less than or equal to the provided date. + :param date_gt: Filter for dates greater than the provided date. + :param date_gte: Filter for dates greater than or equal to the provided date. + :param short_volume_ratio: Filter by short volume ratio. + :param short_volume_ratio_lt: Filter for short volume ratio less than the provided date. + :param short_volume_ratio_lte: Filter for short volume ratio less than or equal to the provided date. + :param short_volume_ratio_gt: Filter for short volume ratio greater than the provided date. + :param short_volume_ratio_gte: Filter for short volume ratio greater than or equal to the provided date. + :param total_volume: Filter by total volume. + :param total_volume_lt: Filter for total volume less than the provided date. + :param total_volume_lte: Filter for total volume less than or equal to the provided date. + :param total_volume_gt: Filter for total volume greater than the provided date. + :param total_volume_gte: Filter for total volume greater than or equal to the provided date. + :param limit: Limit the number of results returned. Default 10, max 50000. + :param sort: Field to sort by (e.g., "ticker"). + :param order: Order results based on the sort field ("asc" or "desc"). Default "desc". + :param params: Additional query parameters. + :param raw: Return raw HTTPResponse object if True, else return List[ShortVolume]. + :param options: RequestOptionBuilder for additional headers or params. + :return: An iterator of ShortVolume objects or HTTPResponse if raw=True. + """ + url = "/stocks/v1/short-volume" + + return self._paginate( + path=url, + params=self._get_params(self.list_short_volume, locals()), + deserializer=ShortVolume.from_dict, + raw=raw, + result_key="results", + options=options, + ) + + # Add these functions to financials.py in the FinancialsClient class + + @overload + def list_stocks_splits( + self, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + execution_date: Optional[Union[str, date]] = None, + execution_date_gt: Optional[Union[str, date]] = None, + execution_date_gte: Optional[Union[str, date]] = None, + execution_date_lt: Optional[Union[str, date]] = None, + execution_date_lte: Optional[Union[str, date]] = None, + adjustment_type: Optional[str] = None, + adjustment_type_any_of: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[StockSplit]: ... + @overload + def list_stocks_splits( + self, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + execution_date: Optional[Union[str, date]] = None, + execution_date_gt: Optional[Union[str, date]] = None, + execution_date_gte: Optional[Union[str, date]] = None, + execution_date_lt: Optional[Union[str, date]] = None, + execution_date_lte: Optional[Union[str, date]] = None, + adjustment_type: Optional[str] = None, + adjustment_type_any_of: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_stocks_splits( + self, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + execution_date: Optional[Union[str, date]] = None, + execution_date_gt: Optional[Union[str, date]] = None, + execution_date_gte: Optional[Union[str, date]] = None, + execution_date_lt: Optional[Union[str, date]] = None, + execution_date_lte: Optional[Union[str, date]] = None, + adjustment_type: Optional[str] = None, + adjustment_type_any_of: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[StockSplit], HTTPResponse]: ... + def list_stocks_splits( + self, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + execution_date: Optional[Union[str, date]] = None, + execution_date_gt: Optional[Union[str, date]] = None, + execution_date_gte: Optional[Union[str, date]] = None, + execution_date_lt: Optional[Union[str, date]] = None, execution_date_lte: Optional[Union[str, date]] = None, adjustment_type: Optional[str] = None, adjustment_type_any_of: Optional[str] = None, @@ -743,6 +1607,88 @@ def list_stocks_splits( options=options, ) + @overload + def list_stocks_dividends( + self, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + ex_dividend_date: Optional[Union[str, date]] = None, + ex_dividend_date_gt: Optional[Union[str, date]] = None, + ex_dividend_date_gte: Optional[Union[str, date]] = None, + ex_dividend_date_lt: Optional[Union[str, date]] = None, + ex_dividend_date_lte: Optional[Union[str, date]] = None, + frequency: Optional[int] = None, + frequency_gt: Optional[int] = None, + frequency_gte: Optional[int] = None, + frequency_lt: Optional[int] = None, + frequency_lte: Optional[int] = None, + distribution_type: Optional[str] = None, + distribution_type_any_of: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[StockDividend]: ... + @overload + def list_stocks_dividends( + self, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + ex_dividend_date: Optional[Union[str, date]] = None, + ex_dividend_date_gt: Optional[Union[str, date]] = None, + ex_dividend_date_gte: Optional[Union[str, date]] = None, + ex_dividend_date_lt: Optional[Union[str, date]] = None, + ex_dividend_date_lte: Optional[Union[str, date]] = None, + frequency: Optional[int] = None, + frequency_gt: Optional[int] = None, + frequency_gte: Optional[int] = None, + frequency_lt: Optional[int] = None, + frequency_lte: Optional[int] = None, + distribution_type: Optional[str] = None, + distribution_type_any_of: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_stocks_dividends( + self, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + ex_dividend_date: Optional[Union[str, date]] = None, + ex_dividend_date_gt: Optional[Union[str, date]] = None, + ex_dividend_date_gte: Optional[Union[str, date]] = None, + ex_dividend_date_lt: Optional[Union[str, date]] = None, + ex_dividend_date_lte: Optional[Union[str, date]] = None, + frequency: Optional[int] = None, + frequency_gt: Optional[int] = None, + frequency_gte: Optional[int] = None, + frequency_lt: Optional[int] = None, + frequency_lte: Optional[int] = None, + distribution_type: Optional[str] = None, + distribution_type_any_of: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[StockDividend], HTTPResponse]: ... def list_stocks_dividends( self, ticker: Optional[str] = None, @@ -781,172 +1727,802 @@ def list_stocks_dividends( options=options, ) + @overload def list_stocks_filings_risk_factors( self, filing_date: Optional[Union[str, date]] = None, - filing_date_any_of: Optional[str] = None, + filing_date_any_of: Optional[str] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + cik: Optional[str] = None, + cik_any_of: Optional[str] = None, + cik_gt: Optional[str] = None, + cik_gte: Optional[str] = None, + cik_lt: Optional[str] = None, + cik_lte: Optional[str] = None, + limit: Optional[int] = 100, + sort: Optional[Union[str, Sort]] = "filing_date.desc", + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[RiskFactor]: ... + @overload + def list_stocks_filings_risk_factors( + self, + filing_date: Optional[Union[str, date]] = None, + filing_date_any_of: Optional[str] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + cik: Optional[str] = None, + cik_any_of: Optional[str] = None, + cik_gt: Optional[str] = None, + cik_gte: Optional[str] = None, + cik_lt: Optional[str] = None, + cik_lte: Optional[str] = None, + limit: Optional[int] = 100, + sort: Optional[Union[str, Sort]] = "filing_date.desc", + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_stocks_filings_risk_factors( + self, + filing_date: Optional[Union[str, date]] = None, + filing_date_any_of: Optional[str] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + cik: Optional[str] = None, + cik_any_of: Optional[str] = None, + cik_gt: Optional[str] = None, + cik_gte: Optional[str] = None, + cik_lt: Optional[str] = None, + cik_lte: Optional[str] = None, + limit: Optional[int] = 100, + sort: Optional[Union[str, Sort]] = "filing_date.desc", + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[RiskFactor], HTTPResponse]: ... + def list_stocks_filings_risk_factors( + self, + filing_date: Optional[Union[str, date]] = None, + filing_date_any_of: Optional[str] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + cik: Optional[str] = None, + cik_any_of: Optional[str] = None, + cik_gt: Optional[str] = None, + cik_gte: Optional[str] = None, + cik_lt: Optional[str] = None, + cik_lte: Optional[str] = None, + limit: Optional[int] = 100, + sort: Optional[Union[str, Sort]] = "filing_date.desc", + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[RiskFactor], HTTPResponse]: + """ + Get categorized risk factors extracted from 10-K filings (with supporting_text). + """ + url = "/stocks/filings/vX/risk-factors" + return self._paginate( + path=url, + params=self._get_params(self.list_stocks_filings_risk_factors, locals()), + result_key="results", + deserializer=RiskFactor.from_dict, + raw=raw, + options=options, + ) + + @overload + def list_stocks_taxonomies_risk_factors( + self, + taxonomy: Optional[float] = None, + taxonomy_gt: Optional[float] = None, + taxonomy_gte: Optional[float] = None, + taxonomy_lt: Optional[float] = None, + taxonomy_lte: Optional[float] = None, + primary_category: Optional[str] = None, + primary_category_any_of: Optional[str] = None, + primary_category_gt: Optional[str] = None, + primary_category_gte: Optional[str] = None, + primary_category_lt: Optional[str] = None, + primary_category_lte: Optional[str] = None, + secondary_category: Optional[str] = None, + secondary_category_any_of: Optional[str] = None, + secondary_category_gt: Optional[str] = None, + secondary_category_gte: Optional[str] = None, + secondary_category_lt: Optional[str] = None, + secondary_category_lte: Optional[str] = None, + tertiary_category: Optional[str] = None, + tertiary_category_any_of: Optional[str] = None, + tertiary_category_gt: Optional[str] = None, + tertiary_category_gte: Optional[str] = None, + tertiary_category_lt: Optional[str] = None, + tertiary_category_lte: Optional[str] = None, + limit: Optional[int] = 200, + sort: Optional[Union[str, Sort]] = "taxonomy.desc", + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[RiskFactorTaxonomy]: ... + @overload + def list_stocks_taxonomies_risk_factors( + self, + taxonomy: Optional[float] = None, + taxonomy_gt: Optional[float] = None, + taxonomy_gte: Optional[float] = None, + taxonomy_lt: Optional[float] = None, + taxonomy_lte: Optional[float] = None, + primary_category: Optional[str] = None, + primary_category_any_of: Optional[str] = None, + primary_category_gt: Optional[str] = None, + primary_category_gte: Optional[str] = None, + primary_category_lt: Optional[str] = None, + primary_category_lte: Optional[str] = None, + secondary_category: Optional[str] = None, + secondary_category_any_of: Optional[str] = None, + secondary_category_gt: Optional[str] = None, + secondary_category_gte: Optional[str] = None, + secondary_category_lt: Optional[str] = None, + secondary_category_lte: Optional[str] = None, + tertiary_category: Optional[str] = None, + tertiary_category_any_of: Optional[str] = None, + tertiary_category_gt: Optional[str] = None, + tertiary_category_gte: Optional[str] = None, + tertiary_category_lt: Optional[str] = None, + tertiary_category_lte: Optional[str] = None, + limit: Optional[int] = 200, + sort: Optional[Union[str, Sort]] = "taxonomy.desc", + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_stocks_taxonomies_risk_factors( + self, + taxonomy: Optional[float] = None, + taxonomy_gt: Optional[float] = None, + taxonomy_gte: Optional[float] = None, + taxonomy_lt: Optional[float] = None, + taxonomy_lte: Optional[float] = None, + primary_category: Optional[str] = None, + primary_category_any_of: Optional[str] = None, + primary_category_gt: Optional[str] = None, + primary_category_gte: Optional[str] = None, + primary_category_lt: Optional[str] = None, + primary_category_lte: Optional[str] = None, + secondary_category: Optional[str] = None, + secondary_category_any_of: Optional[str] = None, + secondary_category_gt: Optional[str] = None, + secondary_category_gte: Optional[str] = None, + secondary_category_lt: Optional[str] = None, + secondary_category_lte: Optional[str] = None, + tertiary_category: Optional[str] = None, + tertiary_category_any_of: Optional[str] = None, + tertiary_category_gt: Optional[str] = None, + tertiary_category_gte: Optional[str] = None, + tertiary_category_lt: Optional[str] = None, + tertiary_category_lte: Optional[str] = None, + limit: Optional[int] = 200, + sort: Optional[Union[str, Sort]] = "taxonomy.desc", + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[RiskFactorTaxonomy], HTTPResponse]: ... + def list_stocks_taxonomies_risk_factors( + self, + taxonomy: Optional[float] = None, + taxonomy_gt: Optional[float] = None, + taxonomy_gte: Optional[float] = None, + taxonomy_lt: Optional[float] = None, + taxonomy_lte: Optional[float] = None, + primary_category: Optional[str] = None, + primary_category_any_of: Optional[str] = None, + primary_category_gt: Optional[str] = None, + primary_category_gte: Optional[str] = None, + primary_category_lt: Optional[str] = None, + primary_category_lte: Optional[str] = None, + secondary_category: Optional[str] = None, + secondary_category_any_of: Optional[str] = None, + secondary_category_gt: Optional[str] = None, + secondary_category_gte: Optional[str] = None, + secondary_category_lt: Optional[str] = None, + secondary_category_lte: Optional[str] = None, + tertiary_category: Optional[str] = None, + tertiary_category_any_of: Optional[str] = None, + tertiary_category_gt: Optional[str] = None, + tertiary_category_gte: Optional[str] = None, + tertiary_category_lt: Optional[str] = None, + tertiary_category_lte: Optional[str] = None, + limit: Optional[int] = 200, + sort: Optional[Union[str, Sort]] = "taxonomy.desc", + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[RiskFactorTaxonomy], HTTPResponse]: + """ + Get the taxonomy/categories used to classify risk factors (kept old name for backward compatibility). + """ + url = "/stocks/taxonomies/vX/risk-factors" + return self._paginate( + path=url, + params=self._get_params(self.list_stocks_taxonomies_risk_factors, locals()), + result_key="results", + deserializer=RiskFactorTaxonomy.from_dict, + raw=raw, + options=options, + ) + + @overload + def list_stocks_filings_8k_disclosures( + self, + cik: Optional[str] = None, + cik_any_of: Optional[str] = None, + tickers: Optional[str] = None, + tickers_all_of: Optional[str] = None, + tickers_any_of: Optional[str] = None, + filing_date: Optional[Union[str, date]] = None, + filing_date_any_of: Optional[str] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + tertiary_category: Optional[str] = None, + limit: Optional[int] = 100, + sort: Optional[Union[str, Sort]] = "filing_date.desc", + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[Disclosure]: ... + @overload + def list_stocks_filings_8k_disclosures( + self, + cik: Optional[str] = None, + cik_any_of: Optional[str] = None, + tickers: Optional[str] = None, + tickers_all_of: Optional[str] = None, + tickers_any_of: Optional[str] = None, + filing_date: Optional[Union[str, date]] = None, + filing_date_any_of: Optional[str] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + tertiary_category: Optional[str] = None, + limit: Optional[int] = 100, + sort: Optional[Union[str, Sort]] = "filing_date.desc", + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_stocks_filings_8k_disclosures( + self, + cik: Optional[str] = None, + cik_any_of: Optional[str] = None, + tickers: Optional[str] = None, + tickers_all_of: Optional[str] = None, + tickers_any_of: Optional[str] = None, + filing_date: Optional[Union[str, date]] = None, + filing_date_any_of: Optional[str] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + tertiary_category: Optional[str] = None, + limit: Optional[int] = 100, + sort: Optional[Union[str, Sort]] = "filing_date.desc", + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[Disclosure], HTTPResponse]: ... + def list_stocks_filings_8k_disclosures( + self, + cik: Optional[str] = None, + cik_any_of: Optional[str] = None, + tickers: Optional[str] = None, + tickers_all_of: Optional[str] = None, + tickers_any_of: Optional[str] = None, + filing_date: Optional[Union[str, date]] = None, + filing_date_any_of: Optional[str] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + tertiary_category: Optional[str] = None, + limit: Optional[int] = 100, + sort: Optional[Union[str, Sort]] = "filing_date.desc", + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[Disclosure], HTTPResponse]: + """ + SEC 8-K filing disclosure categorization. A single 8-K filing can produce + multiple rows when it covers multiple disclosure types, each classified into + primary, secondary, and tertiary categories with a supporting text excerpt. + The full classification list is available at /stocks/taxonomies/vX/disclosures. + """ + url = "/stocks/filings/8-K/vX/disclosures" + return self._paginate( + path=url, + params=self._get_params(self.list_stocks_filings_8k_disclosures, locals()), + result_key="results", + deserializer=Disclosure.from_dict, + raw=raw, + options=options, + ) + + @overload + def list_stocks_taxonomies_disclosures( + self, + taxonomy: Optional[str] = None, + taxonomy_any_of: Optional[str] = None, + taxonomy_gt: Optional[str] = None, + taxonomy_gte: Optional[str] = None, + taxonomy_lt: Optional[str] = None, + taxonomy_lte: Optional[str] = None, + primary_category: Optional[str] = None, + primary_category_any_of: Optional[str] = None, + primary_category_gt: Optional[str] = None, + primary_category_gte: Optional[str] = None, + primary_category_lt: Optional[str] = None, + primary_category_lte: Optional[str] = None, + secondary_category: Optional[str] = None, + secondary_category_any_of: Optional[str] = None, + secondary_category_gt: Optional[str] = None, + secondary_category_gte: Optional[str] = None, + secondary_category_lt: Optional[str] = None, + secondary_category_lte: Optional[str] = None, + tertiary_category: Optional[str] = None, + tertiary_category_any_of: Optional[str] = None, + tertiary_category_gt: Optional[str] = None, + tertiary_category_gte: Optional[str] = None, + tertiary_category_lt: Optional[str] = None, + tertiary_category_lte: Optional[str] = None, + limit: Optional[int] = 200, + sort: Optional[Union[str, Sort]] = "taxonomy.desc", + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[DisclosureTaxonomy]: ... + @overload + def list_stocks_taxonomies_disclosures( + self, + taxonomy: Optional[str] = None, + taxonomy_any_of: Optional[str] = None, + taxonomy_gt: Optional[str] = None, + taxonomy_gte: Optional[str] = None, + taxonomy_lt: Optional[str] = None, + taxonomy_lte: Optional[str] = None, + primary_category: Optional[str] = None, + primary_category_any_of: Optional[str] = None, + primary_category_gt: Optional[str] = None, + primary_category_gte: Optional[str] = None, + primary_category_lt: Optional[str] = None, + primary_category_lte: Optional[str] = None, + secondary_category: Optional[str] = None, + secondary_category_any_of: Optional[str] = None, + secondary_category_gt: Optional[str] = None, + secondary_category_gte: Optional[str] = None, + secondary_category_lt: Optional[str] = None, + secondary_category_lte: Optional[str] = None, + tertiary_category: Optional[str] = None, + tertiary_category_any_of: Optional[str] = None, + tertiary_category_gt: Optional[str] = None, + tertiary_category_gte: Optional[str] = None, + tertiary_category_lt: Optional[str] = None, + tertiary_category_lte: Optional[str] = None, + limit: Optional[int] = 200, + sort: Optional[Union[str, Sort]] = "taxonomy.desc", + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_stocks_taxonomies_disclosures( + self, + taxonomy: Optional[str] = None, + taxonomy_any_of: Optional[str] = None, + taxonomy_gt: Optional[str] = None, + taxonomy_gte: Optional[str] = None, + taxonomy_lt: Optional[str] = None, + taxonomy_lte: Optional[str] = None, + primary_category: Optional[str] = None, + primary_category_any_of: Optional[str] = None, + primary_category_gt: Optional[str] = None, + primary_category_gte: Optional[str] = None, + primary_category_lt: Optional[str] = None, + primary_category_lte: Optional[str] = None, + secondary_category: Optional[str] = None, + secondary_category_any_of: Optional[str] = None, + secondary_category_gt: Optional[str] = None, + secondary_category_gte: Optional[str] = None, + secondary_category_lt: Optional[str] = None, + secondary_category_lte: Optional[str] = None, + tertiary_category: Optional[str] = None, + tertiary_category_any_of: Optional[str] = None, + tertiary_category_gt: Optional[str] = None, + tertiary_category_gte: Optional[str] = None, + tertiary_category_lt: Optional[str] = None, + tertiary_category_lte: Optional[str] = None, + limit: Optional[int] = 200, + sort: Optional[Union[str, Sort]] = "taxonomy.desc", + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[DisclosureTaxonomy], HTTPResponse]: ... + def list_stocks_taxonomies_disclosures( + self, + taxonomy: Optional[str] = None, + taxonomy_any_of: Optional[str] = None, + taxonomy_gt: Optional[str] = None, + taxonomy_gte: Optional[str] = None, + taxonomy_lt: Optional[str] = None, + taxonomy_lte: Optional[str] = None, + primary_category: Optional[str] = None, + primary_category_any_of: Optional[str] = None, + primary_category_gt: Optional[str] = None, + primary_category_gte: Optional[str] = None, + primary_category_lt: Optional[str] = None, + primary_category_lte: Optional[str] = None, + secondary_category: Optional[str] = None, + secondary_category_any_of: Optional[str] = None, + secondary_category_gt: Optional[str] = None, + secondary_category_gte: Optional[str] = None, + secondary_category_lt: Optional[str] = None, + secondary_category_lte: Optional[str] = None, + tertiary_category: Optional[str] = None, + tertiary_category_any_of: Optional[str] = None, + tertiary_category_gt: Optional[str] = None, + tertiary_category_gte: Optional[str] = None, + tertiary_category_lt: Optional[str] = None, + tertiary_category_lte: Optional[str] = None, + limit: Optional[int] = 200, + sort: Optional[Union[str, Sort]] = "taxonomy.desc", + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[DisclosureTaxonomy], HTTPResponse]: + """ + The complete list of 8-K disclosure classifications used in the 8-K + disclosures endpoint. + """ + url = "/stocks/taxonomies/vX/disclosures" + return self._paginate( + path=url, + params=self._get_params(self.list_stocks_taxonomies_disclosures, locals()), + result_key="results", + deserializer=DisclosureTaxonomy.from_dict, + raw=raw, + options=options, + ) + + @overload + def list_stocks_filings_10k_sections( + self, + cik: Optional[str] = None, + cik_any_of: Optional[str] = None, + cik_gt: Optional[str] = None, + cik_gte: Optional[str] = None, + cik_lt: Optional[str] = None, + cik_lte: Optional[str] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + section: Optional[str] = None, + section_any_of: Optional[str] = None, + filing_date: Optional[Union[str, date]] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + period_end: Optional[Union[str, date]] = None, + period_end_gt: Optional[Union[str, date]] = None, + period_end_gte: Optional[Union[str, date]] = None, + period_end_lt: Optional[Union[str, date]] = None, + period_end_lte: Optional[Union[str, date]] = None, + limit: Optional[int] = 100, + sort: Optional[Union[str, Sort]] = "period_end.desc", + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[FilingSection]: ... + @overload + def list_stocks_filings_10k_sections( + self, + cik: Optional[str] = None, + cik_any_of: Optional[str] = None, + cik_gt: Optional[str] = None, + cik_gte: Optional[str] = None, + cik_lt: Optional[str] = None, + cik_lte: Optional[str] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + section: Optional[str] = None, + section_any_of: Optional[str] = None, + filing_date: Optional[Union[str, date]] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + period_end: Optional[Union[str, date]] = None, + period_end_gt: Optional[Union[str, date]] = None, + period_end_gte: Optional[Union[str, date]] = None, + period_end_lt: Optional[Union[str, date]] = None, + period_end_lte: Optional[Union[str, date]] = None, + limit: Optional[int] = 100, + sort: Optional[Union[str, Sort]] = "period_end.desc", + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_stocks_filings_10k_sections( + self, + cik: Optional[str] = None, + cik_any_of: Optional[str] = None, + cik_gt: Optional[str] = None, + cik_gte: Optional[str] = None, + cik_lt: Optional[str] = None, + cik_lte: Optional[str] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + section: Optional[str] = None, + section_any_of: Optional[str] = None, + filing_date: Optional[Union[str, date]] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + period_end: Optional[Union[str, date]] = None, + period_end_gt: Optional[Union[str, date]] = None, + period_end_gte: Optional[Union[str, date]] = None, + period_end_lt: Optional[Union[str, date]] = None, + period_end_lte: Optional[Union[str, date]] = None, + limit: Optional[int] = 100, + sort: Optional[Union[str, Sort]] = "period_end.desc", + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[FilingSection], HTTPResponse]: ... + def list_stocks_filings_10k_sections( + self, + cik: Optional[str] = None, + cik_any_of: Optional[str] = None, + cik_gt: Optional[str] = None, + cik_gte: Optional[str] = None, + cik_lt: Optional[str] = None, + cik_lte: Optional[str] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + section: Optional[str] = None, + section_any_of: Optional[str] = None, + filing_date: Optional[Union[str, date]] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + period_end: Optional[Union[str, date]] = None, + period_end_gt: Optional[Union[str, date]] = None, + period_end_gte: Optional[Union[str, date]] = None, + period_end_lt: Optional[Union[str, date]] = None, + period_end_lte: Optional[Union[str, date]] = None, + limit: Optional[int] = 100, + sort: Optional[Union[str, Sort]] = "period_end.desc", + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[FilingSection], HTTPResponse]: + """ + Get raw text sections from 10-K/10-Q filings (business, risk_factors, etc.). + """ + url = "/stocks/filings/10-K/vX/sections" + return self._paginate( + path=url, + params=self._get_params(self.list_stocks_filings_10k_sections, locals()), + result_key="results", + deserializer=FilingSection.from_dict, + raw=raw, + options=options, + ) + + @overload + def list_stocks_filings_8k_text( + self, + cik: Optional[str] = None, + cik_any_of: Optional[str] = None, + cik_gt: Optional[str] = None, + cik_gte: Optional[str] = None, + cik_lt: Optional[str] = None, + cik_lte: Optional[str] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + form_type: Optional[str] = None, + form_type_any_of: Optional[str] = None, + form_type_gt: Optional[str] = None, + form_type_gte: Optional[str] = None, + form_type_lt: Optional[str] = None, + form_type_lte: Optional[str] = None, + filing_date: Optional[Union[str, date]] = None, filing_date_gt: Optional[Union[str, date]] = None, filing_date_gte: Optional[Union[str, date]] = None, filing_date_lt: Optional[Union[str, date]] = None, filing_date_lte: Optional[Union[str, date]] = None, + limit: Optional[int] = 100, + sort: Optional[Union[str, Sort]] = "filing_date.desc", + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[Filing8K]: ... + @overload + def list_stocks_filings_8k_text( + self, + cik: Optional[str] = None, + cik_any_of: Optional[str] = None, + cik_gt: Optional[str] = None, + cik_gte: Optional[str] = None, + cik_lt: Optional[str] = None, + cik_lte: Optional[str] = None, ticker: Optional[str] = None, ticker_any_of: Optional[str] = None, ticker_gt: Optional[str] = None, ticker_gte: Optional[str] = None, ticker_lt: Optional[str] = None, ticker_lte: Optional[str] = None, + form_type: Optional[str] = None, + form_type_any_of: Optional[str] = None, + form_type_gt: Optional[str] = None, + form_type_gte: Optional[str] = None, + form_type_lt: Optional[str] = None, + form_type_lte: Optional[str] = None, + filing_date: Optional[Union[str, date]] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + limit: Optional[int] = 100, + sort: Optional[Union[str, Sort]] = "filing_date.desc", + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_stocks_filings_8k_text( + self, cik: Optional[str] = None, cik_any_of: Optional[str] = None, cik_gt: Optional[str] = None, cik_gte: Optional[str] = None, cik_lt: Optional[str] = None, cik_lte: Optional[str] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + form_type: Optional[str] = None, + form_type_any_of: Optional[str] = None, + form_type_gt: Optional[str] = None, + form_type_gte: Optional[str] = None, + form_type_lt: Optional[str] = None, + form_type_lte: Optional[str] = None, + filing_date: Optional[Union[str, date]] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, limit: Optional[int] = 100, sort: Optional[Union[str, Sort]] = "filing_date.desc", params: Optional[Dict[str, Any]] = None, raw: bool = False, options: Optional[RequestOptionBuilder] = None, - ) -> Union[Iterator[RiskFactor], HTTPResponse]: - """ - Get categorized risk factors extracted from 10-K filings (with supporting_text). - """ - url = "/stocks/filings/vX/risk-factors" - return self._paginate( - path=url, - params=self._get_params(self.list_stocks_filings_risk_factors, locals()), - result_key="results", - deserializer=RiskFactor.from_dict, - raw=raw, - options=options, - ) - - def list_stocks_taxonomies_risk_factors( - self, - taxonomy: Optional[float] = None, - taxonomy_gt: Optional[float] = None, - taxonomy_gte: Optional[float] = None, - taxonomy_lt: Optional[float] = None, - taxonomy_lte: Optional[float] = None, - primary_category: Optional[str] = None, - primary_category_any_of: Optional[str] = None, - primary_category_gt: Optional[str] = None, - primary_category_gte: Optional[str] = None, - primary_category_lt: Optional[str] = None, - primary_category_lte: Optional[str] = None, - secondary_category: Optional[str] = None, - secondary_category_any_of: Optional[str] = None, - secondary_category_gt: Optional[str] = None, - secondary_category_gte: Optional[str] = None, - secondary_category_lt: Optional[str] = None, - secondary_category_lte: Optional[str] = None, - tertiary_category: Optional[str] = None, - tertiary_category_any_of: Optional[str] = None, - tertiary_category_gt: Optional[str] = None, - tertiary_category_gte: Optional[str] = None, - tertiary_category_lt: Optional[str] = None, - tertiary_category_lte: Optional[str] = None, - limit: Optional[int] = 200, - sort: Optional[Union[str, Sort]] = "taxonomy.desc", - params: Optional[Dict[str, Any]] = None, - raw: bool = False, - options: Optional[RequestOptionBuilder] = None, - ) -> Union[Iterator[RiskFactorTaxonomy], HTTPResponse]: - """ - Get the taxonomy/categories used to classify risk factors (kept old name for backward compatibility). - """ - url = "/stocks/taxonomies/vX/risk-factors" - return self._paginate( - path=url, - params=self._get_params(self.list_stocks_taxonomies_risk_factors, locals()), - result_key="results", - deserializer=RiskFactorTaxonomy.from_dict, - raw=raw, - options=options, - ) - - def list_stocks_filings_8k_disclosures( + ) -> Union[Iterator[Filing8K], HTTPResponse]: ... + def list_stocks_filings_8k_text( self, cik: Optional[str] = None, cik_any_of: Optional[str] = None, - tickers: Optional[str] = None, - tickers_all_of: Optional[str] = None, - tickers_any_of: Optional[str] = None, + cik_gt: Optional[str] = None, + cik_gte: Optional[str] = None, + cik_lt: Optional[str] = None, + cik_lte: Optional[str] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + form_type: Optional[str] = None, + form_type_any_of: Optional[str] = None, + form_type_gt: Optional[str] = None, + form_type_gte: Optional[str] = None, + form_type_lt: Optional[str] = None, + form_type_lte: Optional[str] = None, filing_date: Optional[Union[str, date]] = None, - filing_date_any_of: Optional[str] = None, filing_date_gt: Optional[Union[str, date]] = None, filing_date_gte: Optional[Union[str, date]] = None, filing_date_lt: Optional[Union[str, date]] = None, filing_date_lte: Optional[Union[str, date]] = None, - tertiary_category: Optional[str] = None, limit: Optional[int] = 100, sort: Optional[Union[str, Sort]] = "filing_date.desc", params: Optional[Dict[str, Any]] = None, raw: bool = False, options: Optional[RequestOptionBuilder] = None, - ) -> Union[Iterator[Disclosure], HTTPResponse]: - """ - SEC 8-K filing disclosure categorization. A single 8-K filing can produce - multiple rows when it covers multiple disclosure types, each classified into - primary, secondary, and tertiary categories with a supporting text excerpt. - The full classification list is available at /stocks/taxonomies/vX/disclosures. - """ - url = "/stocks/filings/8-K/vX/disclosures" - return self._paginate( - path=url, - params=self._get_params(self.list_stocks_filings_8k_disclosures, locals()), - result_key="results", - deserializer=Disclosure.from_dict, - raw=raw, - options=options, - ) - - def list_stocks_taxonomies_disclosures( - self, - taxonomy: Optional[str] = None, - taxonomy_any_of: Optional[str] = None, - taxonomy_gt: Optional[str] = None, - taxonomy_gte: Optional[str] = None, - taxonomy_lt: Optional[str] = None, - taxonomy_lte: Optional[str] = None, - primary_category: Optional[str] = None, - primary_category_any_of: Optional[str] = None, - primary_category_gt: Optional[str] = None, - primary_category_gte: Optional[str] = None, - primary_category_lt: Optional[str] = None, - primary_category_lte: Optional[str] = None, - secondary_category: Optional[str] = None, - secondary_category_any_of: Optional[str] = None, - secondary_category_gt: Optional[str] = None, - secondary_category_gte: Optional[str] = None, - secondary_category_lt: Optional[str] = None, - secondary_category_lte: Optional[str] = None, - tertiary_category: Optional[str] = None, - tertiary_category_any_of: Optional[str] = None, - tertiary_category_gt: Optional[str] = None, - tertiary_category_gte: Optional[str] = None, - tertiary_category_lt: Optional[str] = None, - tertiary_category_lte: Optional[str] = None, - limit: Optional[int] = 200, - sort: Optional[Union[str, Sort]] = "taxonomy.desc", - params: Optional[Dict[str, Any]] = None, - raw: bool = False, - options: Optional[RequestOptionBuilder] = None, - ) -> Union[Iterator[DisclosureTaxonomy], HTTPResponse]: + ) -> Union[Iterator[Filing8K], HTTPResponse]: """ - The complete list of 8-K disclosure classifications used in the 8-K - disclosures endpoint. + Get parsed 8-K filings (earnings, acquisitions, executive changes, etc.). """ - url = "/stocks/taxonomies/vX/disclosures" + url = "/stocks/filings/8-K/vX/text" return self._paginate( path=url, - params=self._get_params(self.list_stocks_taxonomies_disclosures, locals()), + params=self._get_params(self.list_stocks_filings_8k_text, locals()), result_key="results", - deserializer=DisclosureTaxonomy.from_dict, + deserializer=Filing8K.from_dict, raw=raw, options=options, ) - def list_stocks_filings_10k_sections( + @overload + def list_stocks_filings_index( self, cik: Optional[str] = None, cik_any_of: Optional[str] = None, @@ -960,38 +2536,58 @@ def list_stocks_filings_10k_sections( ticker_gte: Optional[str] = None, ticker_lt: Optional[str] = None, ticker_lte: Optional[str] = None, - section: Optional[str] = None, - section_any_of: Optional[str] = None, + form_type: Optional[str] = None, + form_type_any_of: Optional[str] = None, + form_type_gt: Optional[str] = None, + form_type_gte: Optional[str] = None, + form_type_lt: Optional[str] = None, + form_type_lte: Optional[str] = None, filing_date: Optional[Union[str, date]] = None, filing_date_gt: Optional[Union[str, date]] = None, filing_date_gte: Optional[Union[str, date]] = None, filing_date_lt: Optional[Union[str, date]] = None, filing_date_lte: Optional[Union[str, date]] = None, - period_end: Optional[Union[str, date]] = None, - period_end_gt: Optional[Union[str, date]] = None, - period_end_gte: Optional[Union[str, date]] = None, - period_end_lt: Optional[Union[str, date]] = None, - period_end_lte: Optional[Union[str, date]] = None, - limit: Optional[int] = 100, - sort: Optional[Union[str, Sort]] = "period_end.desc", + limit: Optional[int] = 1000, + sort: Optional[Union[str, Sort]] = "filing_date.desc", params: Optional[Dict[str, Any]] = None, - raw: bool = False, + raw: Literal[False] = False, options: Optional[RequestOptionBuilder] = None, - ) -> Union[Iterator[FilingSection], HTTPResponse]: - """ - Get raw text sections from 10-K/10-Q filings (business, risk_factors, etc.). - """ - url = "/stocks/filings/10-K/vX/sections" - return self._paginate( - path=url, - params=self._get_params(self.list_stocks_filings_10k_sections, locals()), - result_key="results", - deserializer=FilingSection.from_dict, - raw=raw, - options=options, - ) - - def list_stocks_filings_8k_text( + ) -> Iterator[FilingIndex]: ... + @overload + def list_stocks_filings_index( + self, + cik: Optional[str] = None, + cik_any_of: Optional[str] = None, + cik_gt: Optional[str] = None, + cik_gte: Optional[str] = None, + cik_lt: Optional[str] = None, + cik_lte: Optional[str] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + form_type: Optional[str] = None, + form_type_any_of: Optional[str] = None, + form_type_gt: Optional[str] = None, + form_type_gte: Optional[str] = None, + form_type_lt: Optional[str] = None, + form_type_lte: Optional[str] = None, + filing_date: Optional[Union[str, date]] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + limit: Optional[int] = 1000, + sort: Optional[Union[str, Sort]] = "filing_date.desc", + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_stocks_filings_index( self, cik: Optional[str] = None, cik_any_of: Optional[str] = None, @@ -1016,25 +2612,12 @@ def list_stocks_filings_8k_text( filing_date_gte: Optional[Union[str, date]] = None, filing_date_lt: Optional[Union[str, date]] = None, filing_date_lte: Optional[Union[str, date]] = None, - limit: Optional[int] = 100, + limit: Optional[int] = 1000, sort: Optional[Union[str, Sort]] = "filing_date.desc", params: Optional[Dict[str, Any]] = None, raw: bool = False, options: Optional[RequestOptionBuilder] = None, - ) -> Union[Iterator[Filing8K], HTTPResponse]: - """ - Get parsed 8-K filings (earnings, acquisitions, executive changes, etc.). - """ - url = "/stocks/filings/8-K/vX/text" - return self._paginate( - path=url, - params=self._get_params(self.list_stocks_filings_8k_text, locals()), - result_key="results", - deserializer=Filing8K.from_dict, - raw=raw, - options=options, - ) - + ) -> Union[Iterator[FilingIndex], HTTPResponse]: ... def list_stocks_filings_index( self, cik: Optional[str] = None, @@ -1079,6 +2662,55 @@ def list_stocks_filings_index( options=options, ) + @overload + def list_stocks_filings_13f( + self, + filer_cik: Optional[str] = None, + filer_cik_any_of: Optional[str] = None, + filing_date: Optional[Union[str, date]] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + limit: Optional[int] = 100, + sort: Optional[Union[str, Sort]] = "filing_date.desc", + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[Filing13F]: ... + @overload + def list_stocks_filings_13f( + self, + filer_cik: Optional[str] = None, + filer_cik_any_of: Optional[str] = None, + filing_date: Optional[Union[str, date]] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + limit: Optional[int] = 100, + sort: Optional[Union[str, Sort]] = "filing_date.desc", + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_stocks_filings_13f( + self, + filer_cik: Optional[str] = None, + filer_cik_any_of: Optional[str] = None, + filing_date: Optional[Union[str, date]] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + limit: Optional[int] = 100, + sort: Optional[Union[str, Sort]] = "filing_date.desc", + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[Filing13F], HTTPResponse]: ... def list_stocks_filings_13f( self, filer_cik: Optional[str] = None, @@ -1110,6 +2742,109 @@ def list_stocks_filings_13f( options=options, ) + @overload + def list_stocks_filings_form_3( + self, + issuer_cik: Optional[str] = None, + issuer_cik_any_of: Optional[str] = None, + owner_cik: Optional[str] = None, + owner_cik_any_of: Optional[str] = None, + tickers: Optional[str] = None, + tickers_all_of: Optional[str] = None, + tickers_any_of: Optional[str] = None, + form_type: Optional[str] = None, + filing_date: Optional[Union[str, date]] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + max_ticker: Optional[str] = None, + max_ticker_any_of: Optional[str] = None, + max_ticker_gt: Optional[str] = None, + max_ticker_gte: Optional[str] = None, + max_ticker_lt: Optional[str] = None, + max_ticker_lte: Optional[str] = None, + min_ticker: Optional[str] = None, + min_ticker_any_of: Optional[str] = None, + min_ticker_gt: Optional[str] = None, + min_ticker_gte: Optional[str] = None, + min_ticker_lt: Optional[str] = None, + min_ticker_lte: Optional[str] = None, + limit: Optional[int] = 100, + sort: Optional[Union[str, Sort]] = "filing_date.desc", + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[FilingForm3]: ... + @overload + def list_stocks_filings_form_3( + self, + issuer_cik: Optional[str] = None, + issuer_cik_any_of: Optional[str] = None, + owner_cik: Optional[str] = None, + owner_cik_any_of: Optional[str] = None, + tickers: Optional[str] = None, + tickers_all_of: Optional[str] = None, + tickers_any_of: Optional[str] = None, + form_type: Optional[str] = None, + filing_date: Optional[Union[str, date]] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + max_ticker: Optional[str] = None, + max_ticker_any_of: Optional[str] = None, + max_ticker_gt: Optional[str] = None, + max_ticker_gte: Optional[str] = None, + max_ticker_lt: Optional[str] = None, + max_ticker_lte: Optional[str] = None, + min_ticker: Optional[str] = None, + min_ticker_any_of: Optional[str] = None, + min_ticker_gt: Optional[str] = None, + min_ticker_gte: Optional[str] = None, + min_ticker_lt: Optional[str] = None, + min_ticker_lte: Optional[str] = None, + limit: Optional[int] = 100, + sort: Optional[Union[str, Sort]] = "filing_date.desc", + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_stocks_filings_form_3( + self, + issuer_cik: Optional[str] = None, + issuer_cik_any_of: Optional[str] = None, + owner_cik: Optional[str] = None, + owner_cik_any_of: Optional[str] = None, + tickers: Optional[str] = None, + tickers_all_of: Optional[str] = None, + tickers_any_of: Optional[str] = None, + form_type: Optional[str] = None, + filing_date: Optional[Union[str, date]] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + max_ticker: Optional[str] = None, + max_ticker_any_of: Optional[str] = None, + max_ticker_gt: Optional[str] = None, + max_ticker_gte: Optional[str] = None, + max_ticker_lt: Optional[str] = None, + max_ticker_lte: Optional[str] = None, + min_ticker: Optional[str] = None, + min_ticker_any_of: Optional[str] = None, + min_ticker_gt: Optional[str] = None, + min_ticker_gte: Optional[str] = None, + min_ticker_lt: Optional[str] = None, + min_ticker_lte: Optional[str] = None, + limit: Optional[int] = 100, + sort: Optional[Union[str, Sort]] = "filing_date.desc", + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[FilingForm3], HTTPResponse]: ... def list_stocks_filings_form_3( self, issuer_cik: Optional[str] = None, @@ -1158,6 +2893,112 @@ def list_stocks_filings_form_3( options=options, ) + @overload + def list_stocks_filings_form_4( + self, + issuer_cik: Optional[str] = None, + issuer_cik_any_of: Optional[str] = None, + owner_cik: Optional[str] = None, + owner_cik_any_of: Optional[str] = None, + tickers: Optional[str] = None, + tickers_all_of: Optional[str] = None, + tickers_any_of: Optional[str] = None, + form_type: Optional[str] = None, + transaction_code: Optional[str] = None, + filing_date: Optional[Union[str, date]] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + max_ticker: Optional[str] = None, + max_ticker_any_of: Optional[str] = None, + max_ticker_gt: Optional[str] = None, + max_ticker_gte: Optional[str] = None, + max_ticker_lt: Optional[str] = None, + max_ticker_lte: Optional[str] = None, + min_ticker: Optional[str] = None, + min_ticker_any_of: Optional[str] = None, + min_ticker_gt: Optional[str] = None, + min_ticker_gte: Optional[str] = None, + min_ticker_lt: Optional[str] = None, + min_ticker_lte: Optional[str] = None, + limit: Optional[int] = 100, + sort: Optional[Union[str, Sort]] = "filing_date.desc", + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[FilingForm4]: ... + @overload + def list_stocks_filings_form_4( + self, + issuer_cik: Optional[str] = None, + issuer_cik_any_of: Optional[str] = None, + owner_cik: Optional[str] = None, + owner_cik_any_of: Optional[str] = None, + tickers: Optional[str] = None, + tickers_all_of: Optional[str] = None, + tickers_any_of: Optional[str] = None, + form_type: Optional[str] = None, + transaction_code: Optional[str] = None, + filing_date: Optional[Union[str, date]] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + max_ticker: Optional[str] = None, + max_ticker_any_of: Optional[str] = None, + max_ticker_gt: Optional[str] = None, + max_ticker_gte: Optional[str] = None, + max_ticker_lt: Optional[str] = None, + max_ticker_lte: Optional[str] = None, + min_ticker: Optional[str] = None, + min_ticker_any_of: Optional[str] = None, + min_ticker_gt: Optional[str] = None, + min_ticker_gte: Optional[str] = None, + min_ticker_lt: Optional[str] = None, + min_ticker_lte: Optional[str] = None, + limit: Optional[int] = 100, + sort: Optional[Union[str, Sort]] = "filing_date.desc", + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_stocks_filings_form_4( + self, + issuer_cik: Optional[str] = None, + issuer_cik_any_of: Optional[str] = None, + owner_cik: Optional[str] = None, + owner_cik_any_of: Optional[str] = None, + tickers: Optional[str] = None, + tickers_all_of: Optional[str] = None, + tickers_any_of: Optional[str] = None, + form_type: Optional[str] = None, + transaction_code: Optional[str] = None, + filing_date: Optional[Union[str, date]] = None, + filing_date_gt: Optional[Union[str, date]] = None, + filing_date_gte: Optional[Union[str, date]] = None, + filing_date_lt: Optional[Union[str, date]] = None, + filing_date_lte: Optional[Union[str, date]] = None, + max_ticker: Optional[str] = None, + max_ticker_any_of: Optional[str] = None, + max_ticker_gt: Optional[str] = None, + max_ticker_gte: Optional[str] = None, + max_ticker_lt: Optional[str] = None, + max_ticker_lte: Optional[str] = None, + min_ticker: Optional[str] = None, + min_ticker_any_of: Optional[str] = None, + min_ticker_gt: Optional[str] = None, + min_ticker_gte: Optional[str] = None, + min_ticker_lt: Optional[str] = None, + min_ticker_lte: Optional[str] = None, + limit: Optional[int] = 100, + sort: Optional[Union[str, Sort]] = "filing_date.desc", + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[FilingForm4], HTTPResponse]: ... def list_stocks_filings_form_4( self, issuer_cik: Optional[str] = None, diff --git a/massive/rest/snapshot.py b/massive/rest/snapshot.py index 1cf4e368..da1f7483 100644 --- a/massive/rest/snapshot.py +++ b/massive/rest/snapshot.py @@ -1,5 +1,5 @@ from .base import BaseClient -from typing import Optional, Any, Dict, List, Union, Iterator +from typing import Optional, Any, Dict, List, Union, Iterator, Literal, overload from .models import ( TickerSnapshot, Direction, @@ -24,6 +24,55 @@ def get_locale(market_type: Union[SnapshotMarketType, str]): class SnapshotClient(BaseClient): + @overload + def list_universal_snapshots( + self, + type: Optional[Union[str, SnapshotMarketType]] = None, + ticker_any_of: Optional[List[str]] = None, + order: Optional[Union[str, Order]] = None, + limit: Optional[int] = 10, + sort: Optional[Union[str, Sort]] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[UniversalSnapshot]: ... + @overload + def list_universal_snapshots( + self, + type: Optional[Union[str, SnapshotMarketType]] = None, + ticker_any_of: Optional[List[str]] = None, + order: Optional[Union[str, Order]] = None, + limit: Optional[int] = 10, + sort: Optional[Union[str, Sort]] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_universal_snapshots( + self, + type: Optional[Union[str, SnapshotMarketType]] = None, + ticker_any_of: Optional[List[str]] = None, + order: Optional[Union[str, Order]] = None, + limit: Optional[int] = 10, + sort: Optional[Union[str, Sort]] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[UniversalSnapshot], HTTPResponse]: ... def list_universal_snapshots( self, type: Optional[Union[str, SnapshotMarketType]] = None, @@ -72,6 +121,37 @@ def list_universal_snapshots( options=options, ) + @overload + def get_snapshot_all( + self, + market_type: Union[str, SnapshotMarketType], + tickers: Optional[Union[str, List[str]]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + include_otc: Optional[bool] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> List[TickerSnapshot]: ... + @overload + def get_snapshot_all( + self, + market_type: Union[str, SnapshotMarketType], + tickers: Optional[Union[str, List[str]]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + include_otc: Optional[bool] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def get_snapshot_all( + self, + market_type: Union[str, SnapshotMarketType], + tickers: Optional[Union[str, List[str]]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + include_otc: Optional[bool] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[List[TickerSnapshot], HTTPResponse]: ... def get_snapshot_all( self, market_type: Union[str, SnapshotMarketType], @@ -104,6 +184,37 @@ def get_snapshot_all( options=options, ) + @overload + def get_snapshot_direction( + self, + market_type: Union[str, SnapshotMarketType], + direction: Union[str, Direction], + params: Optional[Dict[str, Any]] = None, + include_otc: Optional[bool] = False, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> List[TickerSnapshot]: ... + @overload + def get_snapshot_direction( + self, + market_type: Union[str, SnapshotMarketType], + direction: Union[str, Direction], + params: Optional[Dict[str, Any]] = None, + include_otc: Optional[bool] = False, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def get_snapshot_direction( + self, + market_type: Union[str, SnapshotMarketType], + direction: Union[str, Direction], + params: Optional[Dict[str, Any]] = None, + include_otc: Optional[bool] = False, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[List[TickerSnapshot], HTTPResponse]: ... def get_snapshot_direction( self, market_type: Union[str, SnapshotMarketType], @@ -136,6 +247,34 @@ def get_snapshot_direction( options=options, ) + @overload + def get_snapshot_ticker( + self, + market_type: Union[str, SnapshotMarketType], + ticker: str, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> TickerSnapshot: ... + @overload + def get_snapshot_ticker( + self, + market_type: Union[str, SnapshotMarketType], + ticker: str, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def get_snapshot_ticker( + self, + market_type: Union[str, SnapshotMarketType], + ticker: str, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[TickerSnapshot, HTTPResponse]: ... def get_snapshot_ticker( self, market_type: Union[str, SnapshotMarketType], @@ -164,6 +303,34 @@ def get_snapshot_ticker( options=options, ) + @overload + def get_snapshot_option( + self, + underlying_asset: str, + option_contract: str, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> OptionContractSnapshot: ... + @overload + def get_snapshot_option( + self, + underlying_asset: str, + option_contract: str, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def get_snapshot_option( + self, + underlying_asset: str, + option_contract: str, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[OptionContractSnapshot, HTTPResponse]: ... def get_snapshot_option( self, underlying_asset: str, @@ -189,6 +356,31 @@ def get_snapshot_option( options=options, ) + @overload + def list_snapshot_options_chain( + self, + underlying_asset: str, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[OptionContractSnapshot]: ... + @overload + def list_snapshot_options_chain( + self, + underlying_asset: str, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_snapshot_options_chain( + self, + underlying_asset: str, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[OptionContractSnapshot], HTTPResponse]: ... def list_snapshot_options_chain( self, underlying_asset: str, @@ -212,6 +404,31 @@ def list_snapshot_options_chain( options=options, ) + @overload + def get_snapshot_crypto_book( + self, + ticker: str, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> SnapshotTickerFullBook: ... + @overload + def get_snapshot_crypto_book( + self, + ticker: str, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def get_snapshot_crypto_book( + self, + ticker: str, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[SnapshotTickerFullBook, HTTPResponse]: ... def get_snapshot_crypto_book( self, ticker: str, @@ -237,6 +454,31 @@ def get_snapshot_crypto_book( options=options, ) + @overload + def get_snapshot_indices( + self, + ticker_any_of: Optional[Union[str, List[str]]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> List[IndicesSnapshot]: ... + @overload + def get_snapshot_indices( + self, + ticker_any_of: Optional[Union[str, List[str]]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def get_snapshot_indices( + self, + ticker_any_of: Optional[Union[str, List[str]]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[List[IndicesSnapshot], HTTPResponse]: ... def get_snapshot_indices( self, ticker_any_of: Optional[Union[str, List[str]]] = None, @@ -266,6 +508,55 @@ def get_snapshot_indices( options=options, ) + @overload + def list_snapshot_indices( + self, + ticker: Optional[str] = None, + ticker_any_of: Optional[Union[str, List[str]]] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + order: Optional[Union[str, Order]] = None, + limit: Optional[int] = None, + sort: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[IndicesSnapshot]: ... + @overload + def list_snapshot_indices( + self, + ticker: Optional[str] = None, + ticker_any_of: Optional[Union[str, List[str]]] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + order: Optional[Union[str, Order]] = None, + limit: Optional[int] = None, + sort: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_snapshot_indices( + self, + ticker: Optional[str] = None, + ticker_any_of: Optional[Union[str, List[str]]] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + order: Optional[Union[str, Order]] = None, + limit: Optional[int] = None, + sort: Optional[str] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[IndicesSnapshot], HTTPResponse]: ... def list_snapshot_indices( self, ticker: Optional[str] = None, diff --git a/massive/rest/summaries.py b/massive/rest/summaries.py index 6af960eb..33ed7ee7 100644 --- a/massive/rest/summaries.py +++ b/massive/rest/summaries.py @@ -1,12 +1,37 @@ from massive.rest.models.summaries import SummaryResult from .base import BaseClient -from typing import Optional, Any, Dict, List, Union +from typing import Optional, Any, Dict, List, Union, Literal, overload from urllib3 import HTTPResponse from .models.request import RequestOptionBuilder class SummariesClient(BaseClient): + @overload + def get_summaries( + self, + ticker_any_of: Optional[List[str]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> List[SummaryResult]: ... + @overload + def get_summaries( + self, + ticker_any_of: Optional[List[str]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def get_summaries( + self, + ticker_any_of: Optional[List[str]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[List[SummaryResult], HTTPResponse]: ... def get_summaries( self, ticker_any_of: Optional[List[str]] = None, diff --git a/massive/rest/tmx.py b/massive/rest/tmx.py index dd5687cd..bda13ea1 100644 --- a/massive/rest/tmx.py +++ b/massive/rest/tmx.py @@ -1,4 +1,4 @@ -from typing import Optional, Any, Dict, List, Union, Iterator +from typing import Optional, Any, Dict, List, Union, Iterator, Literal, overload from urllib3 import HTTPResponse from datetime import datetime, date @@ -16,6 +16,178 @@ class TmxClient(BaseClient): (aligned with the paths from /tmx/v1/...) """ + @overload + def list_tmx_corporate_events( + self, + date: Optional[Union[str, date]] = None, + date_any_of: Optional[str] = None, + date_gt: Optional[Union[str, date]] = None, + date_gte: Optional[Union[str, date]] = None, + date_lt: Optional[Union[str, date]] = None, + date_lte: Optional[Union[str, date]] = None, + type: Optional[str] = None, + type_any_of: Optional[str] = None, + type_gt: Optional[str] = None, + type_gte: Optional[str] = None, + type_lt: Optional[str] = None, + type_lte: Optional[str] = None, + status: Optional[str] = None, + status_any_of: Optional[str] = None, + status_gt: Optional[str] = None, + status_gte: Optional[str] = None, + status_lt: Optional[str] = None, + status_lte: Optional[str] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + isin: Optional[str] = None, + isin_any_of: Optional[str] = None, + isin_gt: Optional[str] = None, + isin_gte: Optional[str] = None, + isin_lt: Optional[str] = None, + isin_lte: Optional[str] = None, + trading_venue: Optional[str] = None, + trading_venue_any_of: Optional[str] = None, + trading_venue_gt: Optional[str] = None, + trading_venue_gte: Optional[str] = None, + trading_venue_lt: Optional[str] = None, + trading_venue_lte: Optional[str] = None, + tmx_company_id: Optional[int] = None, + tmx_company_id_any_of: Optional[str] = None, + tmx_company_id_gt: Optional[int] = None, + tmx_company_id_gte: Optional[int] = None, + tmx_company_id_lt: Optional[int] = None, + tmx_company_id_lte: Optional[int] = None, + tmx_record_id: Optional[str] = None, + tmx_record_id_any_of: Optional[str] = None, + tmx_record_id_gt: Optional[str] = None, + tmx_record_id_gte: Optional[str] = None, + tmx_record_id_lt: Optional[str] = None, + tmx_record_id_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[TmxCorporateEvent]: ... + @overload + def list_tmx_corporate_events( + self, + date: Optional[Union[str, date]] = None, + date_any_of: Optional[str] = None, + date_gt: Optional[Union[str, date]] = None, + date_gte: Optional[Union[str, date]] = None, + date_lt: Optional[Union[str, date]] = None, + date_lte: Optional[Union[str, date]] = None, + type: Optional[str] = None, + type_any_of: Optional[str] = None, + type_gt: Optional[str] = None, + type_gte: Optional[str] = None, + type_lt: Optional[str] = None, + type_lte: Optional[str] = None, + status: Optional[str] = None, + status_any_of: Optional[str] = None, + status_gt: Optional[str] = None, + status_gte: Optional[str] = None, + status_lt: Optional[str] = None, + status_lte: Optional[str] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + isin: Optional[str] = None, + isin_any_of: Optional[str] = None, + isin_gt: Optional[str] = None, + isin_gte: Optional[str] = None, + isin_lt: Optional[str] = None, + isin_lte: Optional[str] = None, + trading_venue: Optional[str] = None, + trading_venue_any_of: Optional[str] = None, + trading_venue_gt: Optional[str] = None, + trading_venue_gte: Optional[str] = None, + trading_venue_lt: Optional[str] = None, + trading_venue_lte: Optional[str] = None, + tmx_company_id: Optional[int] = None, + tmx_company_id_any_of: Optional[str] = None, + tmx_company_id_gt: Optional[int] = None, + tmx_company_id_gte: Optional[int] = None, + tmx_company_id_lt: Optional[int] = None, + tmx_company_id_lte: Optional[int] = None, + tmx_record_id: Optional[str] = None, + tmx_record_id_any_of: Optional[str] = None, + tmx_record_id_gt: Optional[str] = None, + tmx_record_id_gte: Optional[str] = None, + tmx_record_id_lt: Optional[str] = None, + tmx_record_id_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None + ) -> HTTPResponse: ... + @overload + def list_tmx_corporate_events( + self, + date: Optional[Union[str, date]] = None, + date_any_of: Optional[str] = None, + date_gt: Optional[Union[str, date]] = None, + date_gte: Optional[Union[str, date]] = None, + date_lt: Optional[Union[str, date]] = None, + date_lte: Optional[Union[str, date]] = None, + type: Optional[str] = None, + type_any_of: Optional[str] = None, + type_gt: Optional[str] = None, + type_gte: Optional[str] = None, + type_lt: Optional[str] = None, + type_lte: Optional[str] = None, + status: Optional[str] = None, + status_any_of: Optional[str] = None, + status_gt: Optional[str] = None, + status_gte: Optional[str] = None, + status_lt: Optional[str] = None, + status_lte: Optional[str] = None, + ticker: Optional[str] = None, + ticker_any_of: Optional[str] = None, + ticker_gt: Optional[str] = None, + ticker_gte: Optional[str] = None, + ticker_lt: Optional[str] = None, + ticker_lte: Optional[str] = None, + isin: Optional[str] = None, + isin_any_of: Optional[str] = None, + isin_gt: Optional[str] = None, + isin_gte: Optional[str] = None, + isin_lt: Optional[str] = None, + isin_lte: Optional[str] = None, + trading_venue: Optional[str] = None, + trading_venue_any_of: Optional[str] = None, + trading_venue_gt: Optional[str] = None, + trading_venue_gte: Optional[str] = None, + trading_venue_lt: Optional[str] = None, + trading_venue_lte: Optional[str] = None, + tmx_company_id: Optional[int] = None, + tmx_company_id_any_of: Optional[str] = None, + tmx_company_id_gt: Optional[int] = None, + tmx_company_id_gte: Optional[int] = None, + tmx_company_id_lt: Optional[int] = None, + tmx_company_id_lte: Optional[int] = None, + tmx_record_id: Optional[str] = None, + tmx_record_id_any_of: Optional[str] = None, + tmx_record_id_gt: Optional[str] = None, + tmx_record_id_gte: Optional[str] = None, + tmx_record_id_lt: Optional[str] = None, + tmx_record_id_lte: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[TmxCorporateEvent], HTTPResponse]: ... def list_tmx_corporate_events( self, date: Optional[Union[str, date]] = None, diff --git a/massive/rest/trades.py b/massive/rest/trades.py index 3aad1d0e..e6bf2d9b 100644 --- a/massive/rest/trades.py +++ b/massive/rest/trades.py @@ -1,5 +1,5 @@ from .base import BaseClient -from typing import Optional, Any, Dict, Union, Iterator +from typing import Optional, Any, Dict, Union, Iterator, Literal, overload from .models import Trade, LastTrade, CryptoTrade, Sort, Order from urllib3 import HTTPResponse from datetime import datetime, date @@ -8,6 +8,55 @@ class TradesClient(BaseClient): + @overload + def list_trades( + self, + ticker: str, + timestamp: Optional[Union[str, int, datetime, date]] = None, + timestamp_lt: Optional[Union[str, int, datetime, date]] = None, + timestamp_lte: Optional[Union[str, int, datetime, date]] = None, + timestamp_gt: Optional[Union[str, int, datetime, date]] = None, + timestamp_gte: Optional[Union[str, int, datetime, date]] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[Trade]: ... + @overload + def list_trades( + self, + ticker: str, + timestamp: Optional[Union[str, int, datetime, date]] = None, + timestamp_lt: Optional[Union[str, int, datetime, date]] = None, + timestamp_lte: Optional[Union[str, int, datetime, date]] = None, + timestamp_gt: Optional[Union[str, int, datetime, date]] = None, + timestamp_gte: Optional[Union[str, int, datetime, date]] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def list_trades( + self, + ticker: str, + timestamp: Optional[Union[str, int, datetime, date]] = None, + timestamp_lt: Optional[Union[str, int, datetime, date]] = None, + timestamp_lte: Optional[Union[str, int, datetime, date]] = None, + timestamp_gt: Optional[Union[str, int, datetime, date]] = None, + timestamp_gte: Optional[Union[str, int, datetime, date]] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[Trade], HTTPResponse]: ... def list_trades( self, ticker: str, @@ -49,6 +98,31 @@ def list_trades( options=options, ) + @overload + def get_last_trade( + self, + ticker: str, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> LastTrade: ... + @overload + def get_last_trade( + self, + ticker: str, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def get_last_trade( + self, + ticker: str, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[LastTrade, HTTPResponse]: ... def get_last_trade( self, ticker: str, @@ -75,6 +149,34 @@ def get_last_trade( options=options, ) + @overload + def get_last_crypto_trade( + self, + from_: str, + to: str, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> CryptoTrade: ... + @overload + def get_last_crypto_trade( + self, + from_: str, + to: str, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None, + ) -> HTTPResponse: ... + @overload + def get_last_crypto_trade( + self, + from_: str, + to: str, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[CryptoTrade, HTTPResponse]: ... def get_last_crypto_trade( self, from_: str, diff --git a/massive/rest/vX.py b/massive/rest/vX.py index 91b1e782..dbedad1e 100644 --- a/massive/rest/vX.py +++ b/massive/rest/vX.py @@ -1,5 +1,5 @@ from .base import BaseClient -from typing import Optional, Any, Dict, List, Union, Iterator +from typing import Optional, Any, Dict, List, Union, Iterator, Literal, overload from .models import ( StockFinancial, IPOListing, @@ -13,6 +13,88 @@ class VXClient(BaseClient): + @overload + def list_stock_financials( + self, + ticker: Optional[str] = None, + cik: Optional[str] = None, + company_name: Optional[str] = None, + company_name_search: Optional[str] = None, + sic: Optional[str] = None, + filing_date: Optional[Union[str, int, datetime, date]] = None, + filing_date_lt: Optional[Union[str, int, datetime, date]] = None, + filing_date_lte: Optional[Union[str, int, datetime, date]] = None, + filing_date_gt: Optional[Union[str, int, datetime, date]] = None, + filing_date_gte: Optional[Union[str, int, datetime, date]] = None, + period_of_report_date: Optional[Union[str, int, datetime, date]] = None, + period_of_report_date_lt: Optional[Union[str, int, datetime, date]] = None, + period_of_report_date_lte: Optional[Union[str, int, datetime, date]] = None, + period_of_report_date_gt: Optional[Union[str, int, datetime, date]] = None, + period_of_report_date_gte: Optional[Union[str, int, datetime, date]] = None, + timeframe: Optional[Union[str, Timeframe]] = None, + include_sources: Optional[bool] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[StockFinancial]: ... + @overload + def list_stock_financials( + self, + ticker: Optional[str] = None, + cik: Optional[str] = None, + company_name: Optional[str] = None, + company_name_search: Optional[str] = None, + sic: Optional[str] = None, + filing_date: Optional[Union[str, int, datetime, date]] = None, + filing_date_lt: Optional[Union[str, int, datetime, date]] = None, + filing_date_lte: Optional[Union[str, int, datetime, date]] = None, + filing_date_gt: Optional[Union[str, int, datetime, date]] = None, + filing_date_gte: Optional[Union[str, int, datetime, date]] = None, + period_of_report_date: Optional[Union[str, int, datetime, date]] = None, + period_of_report_date_lt: Optional[Union[str, int, datetime, date]] = None, + period_of_report_date_lte: Optional[Union[str, int, datetime, date]] = None, + period_of_report_date_gt: Optional[Union[str, int, datetime, date]] = None, + period_of_report_date_gte: Optional[Union[str, int, datetime, date]] = None, + timeframe: Optional[Union[str, Timeframe]] = None, + include_sources: Optional[bool] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None + ) -> HTTPResponse: ... + @overload + def list_stock_financials( + self, + ticker: Optional[str] = None, + cik: Optional[str] = None, + company_name: Optional[str] = None, + company_name_search: Optional[str] = None, + sic: Optional[str] = None, + filing_date: Optional[Union[str, int, datetime, date]] = None, + filing_date_lt: Optional[Union[str, int, datetime, date]] = None, + filing_date_lte: Optional[Union[str, int, datetime, date]] = None, + filing_date_gt: Optional[Union[str, int, datetime, date]] = None, + filing_date_gte: Optional[Union[str, int, datetime, date]] = None, + period_of_report_date: Optional[Union[str, int, datetime, date]] = None, + period_of_report_date_lt: Optional[Union[str, int, datetime, date]] = None, + period_of_report_date_lte: Optional[Union[str, int, datetime, date]] = None, + period_of_report_date_gt: Optional[Union[str, int, datetime, date]] = None, + period_of_report_date_gte: Optional[Union[str, int, datetime, date]] = None, + timeframe: Optional[Union[str, Timeframe]] = None, + include_sources: Optional[bool] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[StockFinancial], HTTPResponse]: ... def list_stock_financials( self, ticker: Optional[str] = None, @@ -76,6 +158,64 @@ def list_stock_financials( options=options, ) + @overload + def list_ipos( + self, + ticker: Optional[str] = None, + us_code: Optional[str] = None, + isin: Optional[str] = None, + listing_date: Optional[str] = None, + listing_date_lt: Optional[str] = None, + listing_date_lte: Optional[str] = None, + listing_date_gt: Optional[str] = None, + listing_date_gte: Optional[str] = None, + ipo_status: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: Literal[False] = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Iterator[IPOListing]: ... + @overload + def list_ipos( + self, + ticker: Optional[str] = None, + us_code: Optional[str] = None, + isin: Optional[str] = None, + listing_date: Optional[str] = None, + listing_date_lt: Optional[str] = None, + listing_date_lte: Optional[str] = None, + listing_date_gt: Optional[str] = None, + listing_date_gte: Optional[str] = None, + ipo_status: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + *, + raw: Literal[True], + options: Optional[RequestOptionBuilder] = None + ) -> HTTPResponse: ... + @overload + def list_ipos( + self, + ticker: Optional[str] = None, + us_code: Optional[str] = None, + isin: Optional[str] = None, + listing_date: Optional[str] = None, + listing_date_lt: Optional[str] = None, + listing_date_lte: Optional[str] = None, + listing_date_gt: Optional[str] = None, + listing_date_gte: Optional[str] = None, + ipo_status: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[Iterator[IPOListing], HTTPResponse]: ... def list_ipos( self, ticker: Optional[str] = None, From 0b3b04e0473417bd2cb897e8fc03c4336d3d91ee Mon Sep 17 00:00:00 2001 From: Chip Kent <5250374+chipkent@users.noreply.github.com> Date: Fri, 23 Oct 2026 22:30:59 -0600 Subject: [PATCH 4/4] feat: ship py.typed so the package is checked as typed Without the PEP 561 marker, mypy skips the installed package and reports import-untyped, and strict users must set ignore_missing_imports, which turns every massive type into Any. - Add massive/py.typed. The existing packages entry in pyproject.toml already includes it in the wheel and sdist. - Re-export RESTClient and WebSocketClient explicitly ("X as X"), so "from massive import RESTClient" passes --strict, which does not treat plain imports in a typed package as re-exports. This adds no __all__, so "from massive import *" exports exactly the names it did before. - Add test_rest/test_exports.py, which fails if any package stops exporting, through "from import *", a name it exported before this change. - Add test_rest/typing_consumer.py, a small strict user of the public API that is type-checked but never run. It iterates list_* results, indexes get_* lists, checks that raw=True gives HTTPResponse, builds models with keyword arguments, pins each corrected hint with assert_type, and keeps a sample of code written for earlier releases (isinstance narrowing, an int CUSIP) to show it still type-checks. - make static checks it with mypy --strict from inside test_rest/, so massive resolves to the installed package as it does for users. It fails if py.typed goes missing or any of the above regresses. --- Makefile | 3 + massive/__init__.py | 4 +- massive/py.typed | 0 test_rest/test_exports.py | 106 +++++++++++++++++++++++++ test_rest/typing_consumer.py | 150 +++++++++++++++++++++++++++++++++++ 5 files changed, 261 insertions(+), 2 deletions(-) create mode 100644 massive/py.typed create mode 100644 test_rest/test_exports.py create mode 100644 test_rest/typing_consumer.py diff --git a/Makefile b/Makefile index b3732930..9173bef6 100644 --- a/Makefile +++ b/Makefile @@ -27,6 +27,9 @@ style: ## Check static types static: poetry run mypy massive test_* examples + @# From test_rest/, massive resolves to the installed package, as it does + @# for users, so this also fails if the package stops shipping py.typed. + cd test_rest && poetry run mypy --strict typing_consumer.py ## Check code style and static types lint: style static diff --git a/massive/__init__.py b/massive/__init__.py index da6c5136..04f41281 100644 --- a/massive/__init__.py +++ b/massive/__init__.py @@ -1,6 +1,6 @@ -from .rest import RESTClient +from .rest import RESTClient as RESTClient from .rest.base import version -from .websocket import WebSocketClient +from .websocket import WebSocketClient as WebSocketClient from .exceptions import * __version__ = version diff --git a/massive/py.typed b/massive/py.typed new file mode 100644 index 00000000..e69de29b diff --git a/test_rest/test_exports.py b/test_rest/test_exports.py new file mode 100644 index 00000000..c2490c8a --- /dev/null +++ b/test_rest/test_exports.py @@ -0,0 +1,106 @@ +"""Guard the names that ``from import *`` exports. + +Code that does ``from massive.rest.models import *`` (or the same for any +other package below) depends on every name it got before. This test fails if +a package stops exporting a name it exported before type-checking support was +added (commit e462088, just after v2.9.0). Adding names is fine. + +The snapshots are the complete star-export of each package at that commit, +including incidental names such as ``Optional`` or ``logging``: removing one +of those could still break a caller that relied on it. To remove a name on +purpose, delete it from the snapshot in the same change. +""" + +import importlib +import unittest + +# Names that ``from import *`` exported at commit e462088. +BASELINE_EXPORTS = { + "massive": """ + AuthError BadResponse RESTClient WebSocketClient certs exceptions logging + modelclass rest version websocket + """.split(), + "massive.rest": """ + AggsClient Any BASE BenzingaClient ConditionsClient ContractsClient Dict + DividendsClient ENV_KEY EconomyClient EtfGlobalClient ExchangesClient + FinancialsClient FuturesClient IndicatorsClient MarketsClient Optional + QuotesClient RESTClient SnapshotClient SplitsClient SummariesClient + TickersClient TmxClient TradesClient VXClient aggs base benzinga + ca_bundle_path economy etf_global financials futures indicators logger + models os quotes reference snapshot summaries tmx trades vX + """.split(), + "massive.rest.models": """ + Agg Any AssetClass BalanceSheet Branding CashFlowStatement CompanyAddress + ComprehensiveIncome Condition Consolidated CryptoTrade DailyOpenCloseAgg + DataPoint DataType DayOptionContractSnapshot Dict Direction Disclosure + DisclosureTaxonomy Dividend DividendType EMAIndicatorResults Enum Exchange + ExchangeType Filing13F Filing8K FilingFootnote FilingForm3 FilingForm4 + FilingIndex FilingSection FinancialBalanceSheet FinancialCashFlowStatement + FinancialFloat FinancialIncomeStatement FinancialRatio Financials ForexQuote + Frequency FuturesAgg FuturesContract FuturesExchange FuturesMarketStatus + FuturesProduct FuturesQuote FuturesSchedule FuturesSnapshot + FuturesSnapshotDetails FuturesSnapshotMinute FuturesSnapshotQuote + FuturesSnapshotSession FuturesSnapshotTrade FuturesTrade Greeks + GroupedDailyAgg IPOListing IncomeStatement IndicatorUnderlying + IndicatorValue IndicesSession IndicesSnapshot Insight LastForexQuote + LastQuote LastQuoteOptionContractSnapshot LastTrade + LastTradeOptionContractSnapshot LaunchPadOptions List Locale + MACDIndicatorResults MACDIndicatorValue Market MarketCenter MarketCurrencies + MarketExchanges MarketHoliday MarketIndices MarketStatus MinuteSnapshot + OptionContractSnapshot OptionDetails Optional Options OptionsContract Order + OrderBookQuote Precision PreviousCloseAgg Publisher Quote + RSIIndicatorResults RealTimeCurrencyConversion RelatedCompany RiskFactor + RiskFactorTaxonomy SIP SMAIndicatorResults SeriesType Session ShortInterest + ShortVolume SingleIndicatorResults SipMapping SnapshotMarketType + SnapshotTickerFullBook Sort Split StockDividend StockFinancial StockSplit + SummaryResult Ticker TickerChange TickerChangeEvent TickerChangeResults + TickerDetails TickerNews TickerSnapshot TickerTypes Timeframe Trade + Underlying UnderlyingAsset Union UniversalSnapshot UniversalSnapshotDetails + UniversalSnapshotLastMinute UniversalSnapshotLastQuote + UniversalSnapshotLastTrade UniversalSnapshotSession + UniversalSnapshotUnderlyingAsset UpdateRules aggs benzinga common conditions + contracts dataclass dividends economy etf_global exchanges financials + futures indicators markets modelclass quotes request snapshot splits + summaries tickers tmx trades + """.split(), + "massive.websocket": """ + Any AuthError Awaitable Callable ClientConnection ConnectionClosedError + ConnectionClosedOK Counter CryptoQuote CryptoTrade CurrencyAgg Dict Enum + EquityAgg EquityQuote EquityTrade EventType FairMarketValue Feed ForexQuote + FromDictProtocol FuturesAgg FuturesQuote FuturesTrade Imbalance IndexValue + LaunchpadValue Level2Book LimitUpLimitDown List MARKET_EVENT_MAP Market + NewType OK_STATUSES Optional Protocol Set Type Union WebSocketClient + WebSocketMessage asyncio ca_bundle_path cast common connect env_key + get_logger json logger logging modelclass models os parse parse_single ssl + time + """.split(), + "massive.websocket.models": """ + Any CryptoQuote CryptoTrade CurrencyAgg Dict Enum EquityAgg EquityQuote + EquityTrade EventType FairMarketValue Feed ForexQuote FromDictProtocol + FuturesAgg FuturesQuote FuturesTrade Imbalance IndexValue LaunchpadValue + Level2Book LimitUpLimitDown List MARKET_EVENT_MAP Market NewType Optional + Protocol Type Union WebSocketMessage cast common logging modelclass models + parse parse_single + """.split(), +} + + +def star_exports(module_name): + """Return the names ``from module_name import *`` binds.""" + module = importlib.import_module(module_name) + names = getattr(module, "__all__", None) + if names is None: + names = [n for n in vars(module) if not n.startswith("_")] + return set(names) + + +class StarExportsTest(unittest.TestCase): + def test_no_name_removed(self): + for package, names in BASELINE_EXPORTS.items(): + with self.subTest(package=package): + missing = sorted(set(names) - star_exports(package)) + self.assertEqual(missing, [], f"no longer exported by {package}") + + +if __name__ == "__main__": + unittest.main() diff --git a/test_rest/typing_consumer.py b/test_rest/typing_consumer.py new file mode 100644 index 00000000..8964a915 --- /dev/null +++ b/test_rest/typing_consumer.py @@ -0,0 +1,150 @@ +"""Typical user code, checked with ``mypy --strict`` but never run. + +``make static`` checks this file from inside ``test_rest/``, so ``massive`` +resolves to the installed package rather than the source tree, exactly as it +does for a user. That check fails if: + +- the package stops shipping ``py.typed`` (mypy reports ``import-untyped``); +- a public name stops being re-exported from ``massive``; +- a REST method's default call no longer returns the model type, so + iterating, indexing or reading attributes needs an ``isinstance`` check; +- ``raw=True`` no longer returns ``HTTPResponse``; +- a model constructor stops accepting its fields as keywords; +- a corrected hint regresses. ``assert_type`` checks the exact type, so + ``Optional[int]`` does not pass where ``Optional[float]`` is expected; +- code written for earlier releases, which narrows each result with + ``isinstance`` and passes an ``int`` CUSIP, stops type-checking. + +The file is named so that unittest discovery does not import it. +""" + +from typing import Iterator, List, Optional, Union + +from typing_extensions import assert_type +from urllib3 import HTTPResponse + +from massive import AuthError, BadResponse, RESTClient, WebSocketClient +from massive.rest.models import ( + Agg, + IPOListing, + LastTrade, + PreviousCloseAgg, + ShortInterest, + ShortVolume, + Ticker, +) +from massive.rest.models.economy import TreasuryYield +from massive.websocket.models import CryptoQuote, IndexValue, WebSocketMessage + + +def ticker_symbols(client: RESTClient) -> List[str]: + # list_* yields models; no isinstance check is needed to read them. + return [t.ticker for t in client.list_tickers(market="stocks") if t.ticker] + + +def apple_tickers(client: RESTClient) -> List[Ticker]: + # A CUSIP is a string; an int is still accepted for backward compatibility. + return list(client.list_tickers(cusip="037833100")) + list( + client.list_tickers(cusip=37833100) + ) + + +def first_close(client: RESTClient) -> Optional[float]: + # get_* list endpoints can be indexed directly. + bars = client.get_aggs("AAPL", 1, "day", "2024-01-02", "2024-01-31") + assert_type(bars, List[Agg]) + return bars[0].close if bars else None + + +def previous_close(client: RESTClient) -> Optional[float]: + aggs = client.get_previous_close_agg("AAPL") + assert_type(aggs, List[PreviousCloseAgg]) + return aggs[0].close if aggs else None + + +def last_price(client: RESTClient) -> Optional[float]: + trade = client.get_last_trade("AAPL") + assert_type(trade, LastTrade) + return trade.price + + +def paginated(client: RESTClient) -> None: + assert_type( + client.list_aggs("AAPL", 1, "day", "2024-01-02", "2024-01-31"), Iterator[Agg] + ) + assert_type(client.list_treasury_yields(), Iterator[TreasuryYield]) + assert_type(client.list_short_interest(ticker="AAPL"), Iterator[ShortInterest]) + assert_type(client.list_short_volume(ticker="AAPL"), Iterator[ShortVolume]) + assert_type(client.vx.list_ipos(), Iterator[IPOListing]) + + +def raw_status(client: RESTClient) -> int: + resp = client.get_aggs("AAPL", 1, "day", "2024-01-02", "2024-01-31", raw=True) + assert_type(resp, HTTPResponse) + assert_type(client.list_tickers(raw=True), HTTPResponse) + assert_type(client.get_last_trade("AAPL", raw=True), HTTPResponse) + return resp.status + + +def raw_flag(client: RESTClient, raw: bool) -> None: + # A non-literal flag gets the full union, as before. + assert_type(client.get_last_trade("AAPL", raw=raw), Union[LastTrade, HTTPResponse]) + assert_type(client.list_tickers(raw=raw), Union[Iterator[Ticker], HTTPResponse]) + + +def ticker_symbols_or_none(client: RESTClient) -> Optional[List[str]]: + try: + return ticker_symbols(client) + except (AuthError, BadResponse): + return None + + +def spread(q: CryptoQuote) -> Optional[float]: + assert_type(q.bid_price, Optional[float]) + assert_type(q.ask_price, Optional[float]) + assert_type(q.ask_size, Optional[float]) + if q.ask_price is None or q.bid_price is None: + return None + return q.ask_price - q.bid_price + + +def index_time_ms(v: IndexValue) -> Optional[int]: + assert_type(v.timestamp, Optional[int]) + return v.timestamp + + +def handle(msgs: List[WebSocketMessage]) -> None: + for m in msgs: + if isinstance(m, CryptoQuote): + spread(m) + elif isinstance(m, IndexValue): + index_time_ms(m) + + +def make_ws_client() -> WebSocketClient: + return WebSocketClient(api_key="key", subscriptions=["XQ.BTC-USD"]) + + +def build_models() -> List[object]: + # Model constructors accept their fields as keywords. + quote = CryptoQuote(pair="BTC-USD", bid_price=33052.79, ask_size=0.601) + value = IndexValue(ticker="I:SPX", value=3988.5, timestamp=1678220098130) + trade = LastTrade(ticker="AAPL", sequence_number=3135876) + return [quote, value, trade] + + +def written_for_earlier_releases(client: RESTClient, raw: bool) -> None: + # Code written when every REST method returned Union[Model, HTTPResponse] + # narrows the result itself. It must keep type-checking. + trade = client.get_last_trade("AAPL") + if isinstance(trade, LastTrade): + print(trade.price) + for t in client.list_tickers(cusip=37833100): + if isinstance(t, Ticker): + print(t.ticker) + resp = client.get_last_trade("AAPL", raw=True) + if isinstance(resp, HTTPResponse): + print(resp.status) + either: Union[LastTrade, HTTPResponse] = client.get_last_trade("AAPL", raw=raw) + tickers: Union[Iterator[Ticker], HTTPResponse] = client.list_tickers() + print(either, tickers)