|
1 | 1 | from .base import BaseClient
|
2 | 2 | from typing import Optional, Any, Dict, List, Union, Iterator
|
3 |
| -from .models import StockFinancial, IPOListing, Timeframe, Sort, Order |
| 3 | +from .models import ( |
| 4 | + StockFinancial, |
| 5 | + IPOListing, |
| 6 | + ShortInterest, |
| 7 | + ShortVolume, |
| 8 | + TreasuryYield, |
| 9 | + Timeframe, |
| 10 | + Sort, |
| 11 | + Order, |
| 12 | +) |
4 | 13 | from urllib3 import HTTPResponse
|
5 | 14 | from datetime import datetime, date
|
6 |
| - |
7 | 15 | from .models.request import RequestOptionBuilder
|
8 | 16 |
|
9 | 17 |
|
@@ -77,6 +85,10 @@ def list_ipos(
|
77 | 85 | us_code: Optional[str] = None,
|
78 | 86 | isin: Optional[str] = None,
|
79 | 87 | listing_date: Optional[str] = None,
|
| 88 | + listing_date_lt: Optional[str] = None, |
| 89 | + listing_date_lte: Optional[str] = None, |
| 90 | + listing_date_gt: Optional[str] = None, |
| 91 | + listing_date_gte: Optional[str] = None, |
80 | 92 | ipo_status: Optional[str] = None,
|
81 | 93 | limit: Optional[int] = None,
|
82 | 94 | sort: Optional[Union[str, Sort]] = None,
|
@@ -111,3 +123,170 @@ def list_ipos(
|
111 | 123 | result_key="results",
|
112 | 124 | options=options,
|
113 | 125 | )
|
| 126 | + |
| 127 | + def list_short_interest( |
| 128 | + self, |
| 129 | + ticker: Optional[str] = None, |
| 130 | + days_to_cover: Optional[str] = None, |
| 131 | + days_to_cover_lt: Optional[str] = None, |
| 132 | + days_to_cover_lte: Optional[str] = None, |
| 133 | + days_to_cover_gt: Optional[str] = None, |
| 134 | + days_to_cover_gte: Optional[str] = None, |
| 135 | + settlement_date: Optional[str] = None, |
| 136 | + settlement_date_lt: Optional[str] = None, |
| 137 | + settlement_date_lte: Optional[str] = None, |
| 138 | + settlement_date_gt: Optional[str] = None, |
| 139 | + settlement_date_gte: Optional[str] = None, |
| 140 | + avg_daily_volume: Optional[str] = None, |
| 141 | + avg_daily_volume_lt: Optional[str] = None, |
| 142 | + avg_daily_volume_lte: Optional[str] = None, |
| 143 | + avg_daily_volume_gt: Optional[str] = None, |
| 144 | + avg_daily_volume_gte: Optional[str] = None, |
| 145 | + limit: Optional[int] = None, |
| 146 | + sort: Optional[Union[str, Sort]] = None, |
| 147 | + order: Optional[Union[str, Order]] = None, |
| 148 | + params: Optional[Dict[str, Any]] = None, |
| 149 | + raw: bool = False, |
| 150 | + options: Optional[RequestOptionBuilder] = None, |
| 151 | + ) -> Union[List[ShortInterest], HTTPResponse]: |
| 152 | + """ |
| 153 | + Retrieve short interest data for stocks. |
| 154 | +
|
| 155 | + :param ticker: Filter by the primary ticker symbol. |
| 156 | + :param days_to_cover: Filter by the days to cover value. |
| 157 | + :param days_to_cover_lt: Filter for days to cover dates less than the provided date. |
| 158 | + :param days_to_cover_lte: Filter for days to cover dates less than or equal to the provided date. |
| 159 | + :param days_to_cover_gt: Filter for days to cover dates greater than the provided date. |
| 160 | + :param days_to_cover_gte: Filter for days to cover dates greater than or equal to the provided date. |
| 161 | + :param settlement_date: Filter by settlement date (YYYY-MM-DD). |
| 162 | + :param settlement_date_lt: Filter for settlement dates less than the provided date. |
| 163 | + :param settlement_date_lte: Filter for settlement dates less than or equal to the provided date. |
| 164 | + :param settlement_date_gt: Filter for settlement dates greater than the provided date. |
| 165 | + :param settlement_date_gte: Filter for settlement dates greater than or equal to the provided date. |
| 166 | + :param avg_daily_volume: Filter by average daily volume. |
| 167 | + :param avg_daily_volume_lt: Filter for average daily volume dates less than the provided date. |
| 168 | + :param avg_daily_volume_lte: Filter for average daily volume dates less than or equal to the provided date. |
| 169 | + :param avg_daily_volume_gt: Filter for average daily volume dates greater than the provided date. |
| 170 | + :param avg_daily_volume_gte: Filter for average daily volume dates greater than or equal to the provided date. |
| 171 | + :param limit: Limit the number of results returned. Default 10, max 50000. |
| 172 | + :param sort: Field to sort by (e.g., "ticker"). |
| 173 | + :param order: Order results based on the sort field ("asc" or "desc"). Default "desc". |
| 174 | + :param params: Additional query parameters. |
| 175 | + :param raw: Return raw HTTPResponse object if True, else return List[ShortInterest]. |
| 176 | + :param options: RequestOptionBuilder for additional headers or params. |
| 177 | + :return: A list of ShortInterest objects or HTTPResponse if raw=True. |
| 178 | + """ |
| 179 | + url = "/stocks/vX/short-interest" |
| 180 | + |
| 181 | + return self._paginate( |
| 182 | + path=url, |
| 183 | + params=self._get_params(self.list_short_interest, locals()), |
| 184 | + deserializer=ShortInterest.from_dict, |
| 185 | + raw=raw, |
| 186 | + result_key="results", |
| 187 | + options=options, |
| 188 | + ) |
| 189 | + |
| 190 | + def list_short_volume( |
| 191 | + self, |
| 192 | + ticker: Optional[str] = None, |
| 193 | + date: Optional[str] = None, |
| 194 | + date_lt: Optional[str] = None, |
| 195 | + date_lte: Optional[str] = None, |
| 196 | + date_gt: Optional[str] = None, |
| 197 | + date_gte: Optional[str] = None, |
| 198 | + short_volume_ratio: Optional[str] = None, |
| 199 | + short_volume_ratio_lt: Optional[str] = None, |
| 200 | + short_volume_ratio_lte: Optional[str] = None, |
| 201 | + short_volume_ratio_gt: Optional[str] = None, |
| 202 | + short_volume_ratio_gte: Optional[str] = None, |
| 203 | + total_volume: Optional[str] = None, |
| 204 | + total_volume_lt: Optional[str] = None, |
| 205 | + total_volume_lte: Optional[str] = None, |
| 206 | + total_volume_gt: Optional[str] = None, |
| 207 | + total_volume_gte: Optional[str] = None, |
| 208 | + limit: Optional[int] = None, |
| 209 | + sort: Optional[Union[str, Sort]] = None, |
| 210 | + order: Optional[Union[str, Order]] = None, |
| 211 | + params: Optional[Dict[str, Any]] = None, |
| 212 | + raw: bool = False, |
| 213 | + options: Optional[RequestOptionBuilder] = None, |
| 214 | + ) -> Union[List[ShortVolume], HTTPResponse]: |
| 215 | + """ |
| 216 | + Retrieve short volume data for stocks. |
| 217 | +
|
| 218 | + :param ticker: Filter by the primary ticker symbol. |
| 219 | + :param date: Filter by the date of trade activity (YYYY-MM-DD). |
| 220 | + :param date_lt: Filter for dates less than the provided date. |
| 221 | + :param date_lte: Filter for dates less than or equal to the provided date. |
| 222 | + :param date_gt: Filter for dates greater than the provided date. |
| 223 | + :param date_gte: Filter for dates greater than or equal to the provided date. |
| 224 | + :param short_volume_ratio: Filter by short volume ratio. |
| 225 | + :param short_volume_ratio_lt: Filter for short volume ratio less than the provided date. |
| 226 | + :param short_volume_ratio_lte: Filter for short volume ratio less than or equal to the provided date. |
| 227 | + :param short_volume_ratio_gt: Filter for short volume ratio greater than the provided date. |
| 228 | + :param short_volume_ratio_gte: Filter for short volume ratio greater than or equal to the provided date. |
| 229 | + :param total_volume: Filter by total volume. |
| 230 | + :param total_volume_lt: Filter for total volume less than the provided date. |
| 231 | + :param total_volume_lte: Filter for total volume less than or equal to the provided date. |
| 232 | + :param total_volume_gt: Filter for total volume greater than the provided date. |
| 233 | + :param total_volume_gte: Filter for total volume greater than or equal to the provided date. |
| 234 | + :param limit: Limit the number of results returned. Default 10, max 50000. |
| 235 | + :param sort: Field to sort by (e.g., "ticker"). |
| 236 | + :param order: Order results based on the sort field ("asc" or "desc"). Default "desc". |
| 237 | + :param params: Additional query parameters. |
| 238 | + :param raw: Return raw HTTPResponse object if True, else return List[ShortVolume]. |
| 239 | + :param options: RequestOptionBuilder for additional headers or params. |
| 240 | + :return: A list of ShortVolume objects or HTTPResponse if raw=True. |
| 241 | + """ |
| 242 | + url = "/stocks/vX/short-volume" |
| 243 | + |
| 244 | + return self._paginate( |
| 245 | + path=url, |
| 246 | + params=self._get_params(self.list_short_volume, locals()), |
| 247 | + deserializer=ShortVolume.from_dict, |
| 248 | + raw=raw, |
| 249 | + result_key="results", |
| 250 | + options=options, |
| 251 | + ) |
| 252 | + |
| 253 | + def list_treasury_yields( |
| 254 | + self, |
| 255 | + date: Optional[str] = None, |
| 256 | + date_gt: Optional[str] = None, |
| 257 | + date_gte: Optional[str] = None, |
| 258 | + date_lt: Optional[str] = None, |
| 259 | + date_lte: Optional[str] = None, |
| 260 | + limit: Optional[int] = None, |
| 261 | + sort: Optional[Union[str, Sort]] = None, |
| 262 | + order: Optional[Union[str, Order]] = None, |
| 263 | + params: Optional[Dict[str, Any]] = None, |
| 264 | + raw: bool = False, |
| 265 | + options: Optional[RequestOptionBuilder] = None, |
| 266 | + ) -> Union[List[TreasuryYield], HTTPResponse]: |
| 267 | + """ |
| 268 | + Retrieve treasury yield data. |
| 269 | +
|
| 270 | + :param date: Calendar date of the yield observation (YYYY-MM-DD). |
| 271 | + :param date_gt: Filter for dates greater than the provided date. |
| 272 | + :param date_gte: Filter for dates greater than or equal to the provided date. |
| 273 | + :param date_lt: Filter for dates less than the provided date. |
| 274 | + :param date_lte: Filter for dates less than or equal to the provided date. |
| 275 | + :param limit: Limit the number of results returned. Default 100, max 50000. |
| 276 | + :param sort: Field to sort by (e.g., "date"). Default "date". |
| 277 | + :param order: Order results based on the sort field ("asc" or "desc"). Default "desc". |
| 278 | + :param params: Additional query parameters. |
| 279 | + :param raw: Return raw HTTPResponse object if True, else return List[TreasuryYield]. |
| 280 | + :param options: RequestOptionBuilder for additional headers or params. |
| 281 | + :return: A list of TreasuryYield objects or HTTPResponse if raw=True. |
| 282 | + """ |
| 283 | + url = "/fed/vX/treasury-yields" |
| 284 | + |
| 285 | + return self._paginate( |
| 286 | + path=url, |
| 287 | + params=self._get_params(self.list_treasury_yields, locals()), |
| 288 | + deserializer=TreasuryYield.from_dict, |
| 289 | + raw=raw, |
| 290 | + result_key="results", |
| 291 | + options=options, |
| 292 | + ) |
0 commit comments