finance_dev 0.9.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (486) hide show
  1. finance_dev/__init__.py +18 -0
  2. finance_dev/_hooks/__init__.py +7 -0
  3. finance_dev/_hooks/clientcredentials.py +319 -0
  4. finance_dev/_hooks/oauth2scopes.py +50 -0
  5. finance_dev/_hooks/registration.py +13 -0
  6. finance_dev/_hooks/sdkhooks.py +82 -0
  7. finance_dev/_hooks/types.py +125 -0
  8. finance_dev/_version.py +16 -0
  9. finance_dev/accounts.py +797 -0
  10. finance_dev/alternativedata.py +4830 -0
  11. finance_dev/analytics.py +3757 -0
  12. finance_dev/basesdk.py +393 -0
  13. finance_dev/calendar.py +1523 -0
  14. finance_dev/chart.py +1881 -0
  15. finance_dev/company.py +1105 -0
  16. finance_dev/corporateactions.py +1795 -0
  17. finance_dev/economy.py +1153 -0
  18. finance_dev/errors/__init__.py +94 -0
  19. finance_dev/errors/apierror.py +41 -0
  20. finance_dev/errors/authenticationerrorenvelope.py +43 -0
  21. finance_dev/errors/badrequest.py +34 -0
  22. finance_dev/errors/errorenvelope.py +42 -0
  23. finance_dev/errors/errorresponse.py +45 -0
  24. finance_dev/errors/financedevapierror.py +31 -0
  25. finance_dev/errors/forbidden.py +34 -0
  26. finance_dev/errors/internalservererror.py +35 -0
  27. finance_dev/errors/no_response_error.py +18 -0
  28. finance_dev/errors/notfound.py +34 -0
  29. finance_dev/errors/orderhistorybadrequest.py +35 -0
  30. finance_dev/errors/predorderserrorenvelope.py +42 -0
  31. finance_dev/errors/responsevalidationerror.py +28 -0
  32. finance_dev/errors/unauthorized.py +34 -0
  33. finance_dev/estimates.py +1906 -0
  34. finance_dev/etf.py +1108 -0
  35. finance_dev/filings.py +586 -0
  36. finance_dev/financials.py +4079 -0
  37. finance_dev/history.py +477 -0
  38. finance_dev/httpclient.py +126 -0
  39. finance_dev/indices.py +2308 -0
  40. finance_dev/logos.py +692 -0
  41. finance_dev/market.py +1825 -0
  42. finance_dev/markets.py +952 -0
  43. finance_dev/models/__init__.py +4568 -0
  44. finance_dev/models/accountbalancev2.py +340 -0
  45. finance_dev/models/accountitem.py +78 -0
  46. finance_dev/models/accountposition.py +147 -0
  47. finance_dev/models/aggregatetechnicalindicatorsresponse.py +192 -0
  48. finance_dev/models/analystinsightitem.py +161 -0
  49. finance_dev/models/analystinsightsresponse.py +39 -0
  50. finance_dev/models/apperror.py +123 -0
  51. finance_dev/models/authenticationerrordetail.py +58 -0
  52. finance_dev/models/bankbranchesresponse.py +96 -0
  53. finance_dev/models/basicfinancials.py +243 -0
  54. finance_dev/models/bullbearanalysisresponse.py +150 -0
  55. finance_dev/models/cancelorderop.py +40 -0
  56. finance_dev/models/cancelordrequest_union.py +287 -0
  57. finance_dev/models/cancelordresponse.py +115 -0
  58. finance_dev/models/cashflowstatement.py +290 -0
  59. finance_dev/models/cashflowstatementsresponse.py +61 -0
  60. finance_dev/models/chartbars.py +111 -0
  61. finance_dev/models/chartconfig.py +81 -0
  62. finance_dev/models/chartresolution.py +46 -0
  63. finance_dev/models/companyesgresponse.py +408 -0
  64. finance_dev/models/companyexecutive.py +70 -0
  65. finance_dev/models/companyexecutiveresponse.py +39 -0
  66. finance_dev/models/companypeersresponse.py +38 -0
  67. finance_dev/models/companypresentationresponse.py +96 -0
  68. finance_dev/models/companyprofile.py +255 -0
  69. finance_dev/models/conferencecallsresponse.py +169 -0
  70. finance_dev/models/congressionaltradingresponse.py +138 -0
  71. finance_dev/models/covid19uscasesresponse.py +79 -0
  72. finance_dev/models/createconfigwatchlistop.py +40 -0
  73. finance_dev/models/createwatchlistrequest.py +43 -0
  74. finance_dev/models/dailymarketsummaryresponse.py +73 -0
  75. finance_dev/models/deleteconfigwatchlistbyidop.py +53 -0
  76. finance_dev/models/dividenditem.py +125 -0
  77. finance_dev/models/dividendsresponse.py +61 -0
  78. finance_dev/models/earningrelease.py +291 -0
  79. finance_dev/models/earningscallliveresponse.py +103 -0
  80. finance_dev/models/earningsqualityscoreresponse.py +140 -0
  81. finance_dev/models/earningssurprisesresponse.py +125 -0
  82. finance_dev/models/ebitdaestimatesresponse.py +176 -0
  83. finance_dev/models/ebitestimatesresponse.py +176 -0
  84. finance_dev/models/economicscalendarevent.py +160 -0
  85. finance_dev/models/economicsindicator.py +87 -0
  86. finance_dev/models/epsestimatesresponse.py +176 -0
  87. finance_dev/models/equitydetailsdto.py +569 -0
  88. finance_dev/models/errorcode.py +48 -0
  89. finance_dev/models/etblistresponse.py +43 -0
  90. finance_dev/models/etbsearchrequest.py +21 -0
  91. finance_dev/models/etbsearchresponse.py +43 -0
  92. finance_dev/models/etfcountryallocationresponse.py +113 -0
  93. finance_dev/models/etfholdingsresponse.py +163 -0
  94. finance_dev/models/etfprofileresponse.py +234 -0
  95. finance_dev/models/etfsectorallocationresponse.py +113 -0
  96. finance_dev/models/exchangecode.py +90 -0
  97. finance_dev/models/fdaadvisorycommitteecalendarresponse.py +88 -0
  98. finance_dev/models/filingsimilarityrecord.py +115 -0
  99. finance_dev/models/filingssimilarityindexdatawrapper.py +52 -0
  100. finance_dev/models/filingssimilarityindexresponse.py +42 -0
  101. finance_dev/models/financialratiosresponse.py +252 -0
  102. finance_dev/models/financialsreporteddatawrapper.py +49 -0
  103. finance_dev/models/financialsreportedresponse.py +42 -0
  104. finance_dev/models/financialsrevenuebreakdowndatawrapper.py +49 -0
  105. finance_dev/models/financialsrevenuebreakdownresponse.py +42 -0
  106. finance_dev/models/financialsstatementsdatawrapper.py +44 -0
  107. finance_dev/models/financialsstatementsresponse.py +42 -0
  108. finance_dev/models/financialstatement.py +171 -0
  109. finance_dev/models/financialstatementtype.py +14 -0
  110. finance_dev/models/getaccountbalanceop.py +53 -0
  111. finance_dev/models/getaccountpositionsop.py +53 -0
  112. finance_dev/models/getaccountsresponse.py +22 -0
  113. finance_dev/models/getaggregatetechnicalindicatorsop.py +94 -0
  114. finance_dev/models/getanalystinsightsop.py +164 -0
  115. finance_dev/models/getbankbranchesop.py +53 -0
  116. finance_dev/models/getbaseeventop.py +87 -0
  117. finance_dev/models/getbullbearanalysisop.py +91 -0
  118. finance_dev/models/getcashflowstatementsop.py +564 -0
  119. finance_dev/models/getchartconfigop.py +40 -0
  120. finance_dev/models/getcharthistoryop.py +122 -0
  121. finance_dev/models/getcharttimeop.py +39 -0
  122. finance_dev/models/getcompanyesgop.py +53 -0
  123. finance_dev/models/getcompanyexecutivesop.py +56 -0
  124. finance_dev/models/getcompanymetricsop.py +68 -0
  125. finance_dev/models/getcompanypeersop.py +53 -0
  126. finance_dev/models/getcompanypresentationop.py +56 -0
  127. finance_dev/models/getcompanyprofileop.py +86 -0
  128. finance_dev/models/getconferencecallsop.py +111 -0
  129. finance_dev/models/getconfigwatchlistbyidop.py +53 -0
  130. finance_dev/models/getconfigwatchlistsop.py +40 -0
  131. finance_dev/models/getcongressionaltradingop.py +73 -0
  132. finance_dev/models/getcovid19uscasesop.py +43 -0
  133. finance_dev/models/getdailymarketsummaryop.py +92 -0
  134. finance_dev/models/getdividendsop.py +294 -0
  135. finance_dev/models/getearningscalendarop.py +87 -0
  136. finance_dev/models/getearningscallliveop.py +91 -0
  137. finance_dev/models/getearningsqualityscoreop.py +81 -0
  138. finance_dev/models/getearningssurprisesop.py +80 -0
  139. finance_dev/models/getebitdaestimatesop.py +91 -0
  140. finance_dev/models/getebitestimatesop.py +88 -0
  141. finance_dev/models/geteconomicscalendarop.py +92 -0
  142. finance_dev/models/geteconomicscalendarresponse.py +56 -0
  143. finance_dev/models/getepsestimatesop.py +88 -0
  144. finance_dev/models/getequitydetailsop.py +56 -0
  145. finance_dev/models/getequitydetailsresponse.py +45 -0
  146. finance_dev/models/getetblistop.py +40 -0
  147. finance_dev/models/getetfcountryallocationop.py +80 -0
  148. finance_dev/models/getetfholdingsop.py +96 -0
  149. finance_dev/models/getetfprofileop.py +77 -0
  150. finance_dev/models/getetfsectorallocationop.py +80 -0
  151. finance_dev/models/geteventcontractsop.py +87 -0
  152. finance_dev/models/getfdaadvisorycommitteecalendarop.py +47 -0
  153. finance_dev/models/getfilingssimilarityindexop.py +102 -0
  154. finance_dev/models/getfinancialratiosop.py +612 -0
  155. finance_dev/models/getfinancialstatementsop.py +117 -0
  156. finance_dev/models/getfundownershipop.py +77 -0
  157. finance_dev/models/gethistoricaldataop.py +61 -0
  158. finance_dev/models/gethistoricalesgop.py +53 -0
  159. finance_dev/models/gethistorybatchop.py +74 -0
  160. finance_dev/models/gethistoryop.py +123 -0
  161. finance_dev/models/getincomestatementsop.py +564 -0
  162. finance_dev/models/getindexbarop.py +140 -0
  163. finance_dev/models/getindexbarsop.py +149 -0
  164. finance_dev/models/getindexchartbarsop.py +178 -0
  165. finance_dev/models/getindexrealtimevaluesop.py +94 -0
  166. finance_dev/models/getinflationexpectationsop.py +157 -0
  167. finance_dev/models/getinflationop.py +154 -0
  168. finance_dev/models/getinsidertransactionsop.py +90 -0
  169. finance_dev/models/getinstitutionalownershipop.py +99 -0
  170. finance_dev/models/getinstitutionalportfolioop.py +75 -0
  171. finance_dev/models/getinvestmentthemeop.py +68 -0
  172. finance_dev/models/getipocalendarop.py +63 -0
  173. finance_dev/models/getlobbyingop.py +70 -0
  174. finance_dev/models/getmarketbreadthop.py +40 -0
  175. finance_dev/models/getmarketholidaysop.py +65 -0
  176. finance_dev/models/getmarketstatusop.py +65 -0
  177. finance_dev/models/getmergersandacquisitionsop.py +113 -0
  178. finance_dev/models/getnetinflowop.py +40 -0
  179. finance_dev/models/getnewsbyidop.py +73 -0
  180. finance_dev/models/getnewsop.py +98 -0
  181. finance_dev/models/getnewssentimentop.py +53 -0
  182. finance_dev/models/getoptionchainsnapshotop.py +244 -0
  183. finance_dev/models/getoptioncontractsnapshotop.py +69 -0
  184. finance_dev/models/getoptiondetailsop.py +56 -0
  185. finance_dev/models/getoptiondetailsresponse.py +45 -0
  186. finance_dev/models/getoptionlasttradeop.py +56 -0
  187. finance_dev/models/getoptionopencloseop.py +66 -0
  188. finance_dev/models/getoptionpreviousdayop.py +56 -0
  189. finance_dev/models/getoptionquotesop.py +177 -0
  190. finance_dev/models/getoptionsactivityop.py +111 -0
  191. finance_dev/models/getoptionsetfstopvolumeop.py +70 -0
  192. finance_dev/models/getoptionsstockstopgainersop.py +70 -0
  193. finance_dev/models/getoptionsstockstopvolumeop.py +70 -0
  194. finance_dev/models/getoptionsunusualactivityop.py +100 -0
  195. finance_dev/models/getoptiontradesop.py +177 -0
  196. finance_dev/models/getordersv2response.py +66 -0
  197. finance_dev/models/getownershipdataop.py +77 -0
  198. finance_dev/models/getpositionsresponse.py +39 -0
  199. finance_dev/models/getpredictionorderop.py +88 -0
  200. finance_dev/models/getpricetargetop.py +53 -0
  201. finance_dev/models/getquotesop.py +53 -0
  202. finance_dev/models/getratingsop.py +164 -0
  203. finance_dev/models/getratingsresponse.py +39 -0
  204. finance_dev/models/getreportedfinancialsop.py +127 -0
  205. finance_dev/models/getrevenuebreakdownop.py +85 -0
  206. finance_dev/models/getrevenueestimatesop.py +91 -0
  207. finance_dev/models/getsecfilingsop.py +113 -0
  208. finance_dev/models/getsectortickersop.py +124 -0
  209. finance_dev/models/getsectorwisechangeop.py +84 -0
  210. finance_dev/models/getshortinterestop.py +334 -0
  211. finance_dev/models/getshortvolumeop.py +333 -0
  212. finance_dev/models/getsocialsentimentop.py +90 -0
  213. finance_dev/models/getspinoffsop.py +112 -0
  214. finance_dev/models/getstockaggregatesop.py +174 -0
  215. finance_dev/models/getstocklastquoteop.py +56 -0
  216. finance_dev/models/getstocklasttradeop.py +56 -0
  217. finance_dev/models/getstockopencloseop.py +90 -0
  218. finance_dev/models/getstockpreviousdayop.py +80 -0
  219. finance_dev/models/getstockquotesop.py +177 -0
  220. finance_dev/models/getstocksnapshotsop.py +82 -0
  221. finance_dev/models/getstocksplitsop.py +243 -0
  222. finance_dev/models/getstocktradesop.py +177 -0
  223. finance_dev/models/getsupplychainop.py +53 -0
  224. finance_dev/models/getsupportresistancelevelsop.py +90 -0
  225. finance_dev/models/getsymbolinfoop.py +53 -0
  226. finance_dev/models/gettechnicalindicatorop.py +172 -0
  227. finance_dev/models/gettechnicalpatternsop.py +88 -0
  228. finance_dev/models/gettenderoffersop.py +112 -0
  229. finance_dev/models/gettickhistoryop.py +104 -0
  230. finance_dev/models/gettopgainersop.py +78 -0
  231. finance_dev/models/gettoplosersop.py +78 -0
  232. finance_dev/models/gettopmostactiveop.py +78 -0
  233. finance_dev/models/gettranscriptop.py +53 -0
  234. finance_dev/models/gettreasuryyieldsop.py +157 -0
  235. finance_dev/models/getunifiedsnapshotop.py +223 -0
  236. finance_dev/models/getupgradesdowngradesop.py +91 -0
  237. finance_dev/models/getusaspendingop.py +70 -0
  238. finance_dev/models/getuseraccountsop.py +40 -0
  239. finance_dev/models/getusptopatentsop.py +70 -0
  240. finance_dev/models/getvisaapplicationsop.py +73 -0
  241. finance_dev/models/historicalesgresponse.py +439 -0
  242. finance_dev/models/httpmetadata.py +24 -0
  243. finance_dev/models/incomestatement.py +296 -0
  244. finance_dev/models/incomestatementsresponse.py +61 -0
  245. finance_dev/models/indexbarresponse.py +194 -0
  246. finance_dev/models/indexbarsresponse.py +123 -0
  247. finance_dev/models/indexchartbarsresponse.py +213 -0
  248. finance_dev/models/indexgroupsresponse.py +78 -0
  249. finance_dev/models/indexlistresponse.py +95 -0
  250. finance_dev/models/indexsearchresponse.py +93 -0
  251. finance_dev/models/indicesbygroupresponse.py +93 -0
  252. finance_dev/models/indicesidentifiertype.py +28 -0
  253. finance_dev/models/indicesrealtimeindexinfo.py +67 -0
  254. finance_dev/models/indicesrealtimeindexvalue.py +157 -0
  255. finance_dev/models/indicesrealtimevaluesitem.py +80 -0
  256. finance_dev/models/indicesrealtimevaluesresponse.py +42 -0
  257. finance_dev/models/inflationexpectationsresponse.py +140 -0
  258. finance_dev/models/inflationresponse.py +132 -0
  259. finance_dev/models/insidertransaction.py +97 -0
  260. finance_dev/models/insidertransactionsresponse.py +39 -0
  261. finance_dev/models/institutionalholding.py +77 -0
  262. finance_dev/models/institutionalownershipresponse.py +39 -0
  263. finance_dev/models/institutionalportfolioresponse.py +39 -0
  264. finance_dev/models/investmentthemeid.py +35 -0
  265. finance_dev/models/investmentthemeresponse.py +80 -0
  266. finance_dev/models/ipocalendarresponse.py +39 -0
  267. finance_dev/models/ipoitem.py +93 -0
  268. finance_dev/models/listactiveordersop.py +87 -0
  269. finance_dev/models/listcategoriesop.py +79 -0
  270. finance_dev/models/listindexgroupsop.py +40 -0
  271. finance_dev/models/listindicesbygroupop.py +58 -0
  272. finance_dev/models/listindicesop.py +91 -0
  273. finance_dev/models/listoptioncontractsop.py +66 -0
  274. finance_dev/models/listoptionexpirydatesop.py +56 -0
  275. finance_dev/models/listorderhistoryop.py +139 -0
  276. finance_dev/models/listpredictionordersop.py +134 -0
  277. finance_dev/models/listtranscriptsop.py +53 -0
  278. finance_dev/models/lobbyingresponse.py +166 -0
  279. finance_dev/models/logosearchresponse.py +152 -0
  280. finance_dev/models/logosyncresponse.py +277 -0
  281. finance_dev/models/marketbreadth.py +97 -0
  282. finance_dev/models/marketbreadthresponse.py +44 -0
  283. finance_dev/models/marketholiday.py +56 -0
  284. finance_dev/models/marketholidayresponse.py +39 -0
  285. finance_dev/models/marketstatus.py +67 -0
  286. finance_dev/models/mergersandacquisitionsresponse.py +186 -0
  287. finance_dev/models/metricseriespoint.py +43 -0
  288. finance_dev/models/netinflow.py +81 -0
  289. finance_dev/models/netinflowresponse.py +44 -0
  290. finance_dev/models/newsitem.py +102 -0
  291. finance_dev/models/newslistresponse.py +128 -0
  292. finance_dev/models/newssentimentresponse.py +176 -0
  293. finance_dev/models/newstypeenum.py +16 -0
  294. finance_dev/models/optionchainsnapshotresponse.py +64 -0
  295. finance_dev/models/optioncontractsnapshotresponse.py +64 -0
  296. finance_dev/models/optioncontractsnapshotrow.py +164 -0
  297. finance_dev/models/optioncontractsresponse.py +131 -0
  298. finance_dev/models/optiondetailsdto.py +72 -0
  299. finance_dev/models/optionexpirydatesresponse.py +53 -0
  300. finance_dev/models/optionlasttraderesponse.py +169 -0
  301. finance_dev/models/optionopencloseresponse.py +97 -0
  302. finance_dev/models/optionpreviousdayresponse.py +89 -0
  303. finance_dev/models/optionquotesresponse.py +138 -0
  304. finance_dev/models/optionsactivityresponse.py +265 -0
  305. finance_dev/models/optionsnapshotcontractdetails.py +85 -0
  306. finance_dev/models/optionsnapshotdaybar.py +107 -0
  307. finance_dev/models/optionsnapshotgreeks.py +67 -0
  308. finance_dev/models/optionsnapshotlastquote.py +116 -0
  309. finance_dev/models/optionsnapshotlasttrade.py +102 -0
  310. finance_dev/models/optionsnapshotunderlying.py +86 -0
  311. finance_dev/models/optionsscreeneritem.py +151 -0
  312. finance_dev/models/optionsunusualactivityresponse.py +62 -0
  313. finance_dev/models/optionsunusualactivitytrade.py +103 -0
  314. finance_dev/models/optiontradesresponse.py +132 -0
  315. finance_dev/models/orderrequesttimeinforceenum.py +29 -0
  316. finance_dev/models/ordersideenum.py +20 -0
  317. finance_dev/models/ordertypeenum.py +20 -0
  318. finance_dev/models/ordleg.py +162 -0
  319. finance_dev/models/ordresponse.py +202 -0
  320. finance_dev/models/ownershipdataresponse.py +39 -0
  321. finance_dev/models/ownershiprecord.py +74 -0
  322. finance_dev/models/placeorderop.py +40 -0
  323. finance_dev/models/placeordrequest_union.py +335 -0
  324. finance_dev/models/placepredictionorderop.py +114 -0
  325. finance_dev/models/predmdbaseevent.py +62 -0
  326. finance_dev/models/predmdbaseeventhit.py +53 -0
  327. finance_dev/models/predmdbaseeventsearchresult.py +46 -0
  328. finance_dev/models/predmdbaseeventwithevents.py +32 -0
  329. finance_dev/models/predmdbatchhistoryrequest.py +16 -0
  330. finance_dev/models/predmdbatchhistoryresponse.py +16 -0
  331. finance_dev/models/predmdcategory.py +48 -0
  332. finance_dev/models/predmdcontract.py +177 -0
  333. finance_dev/models/predmdcontracthit.py +157 -0
  334. finance_dev/models/predmdcontractsearchresult.py +46 -0
  335. finance_dev/models/predmdevent.py +136 -0
  336. finance_dev/models/predmdeventhit.py +73 -0
  337. finance_dev/models/predmdeventsearchresult.py +46 -0
  338. finance_dev/models/predmdeventwithcontracts.py +22 -0
  339. finance_dev/models/predmdhistoryrequest.py +59 -0
  340. finance_dev/models/predmdhistoryresponse.py +53 -0
  341. finance_dev/models/predmdtick.py +53 -0
  342. finance_dev/models/predordersapperror.py +78 -0
  343. finance_dev/models/predordersorder.py +267 -0
  344. finance_dev/models/predordersorderdetail.py +26 -0
  345. finance_dev/models/predordersorderpage.py +45 -0
  346. finance_dev/models/predordersorderreport.py +88 -0
  347. finance_dev/models/predordersplaceorderrequest.py +159 -0
  348. finance_dev/models/previeworderop.py +40 -0
  349. finance_dev/models/previeworderresponse.py +127 -0
  350. finance_dev/models/pricetargetresponse.py +89 -0
  351. finance_dev/models/quotedata.py +49 -0
  352. finance_dev/models/quotesresponse.py +62 -0
  353. finance_dev/models/quotevalues.py +114 -0
  354. finance_dev/models/rating.py +193 -0
  355. finance_dev/models/ratingsaccuracy.py +242 -0
  356. finance_dev/models/replaceconfigwatchlistsop.py +40 -0
  357. finance_dev/models/replaceorderop.py +40 -0
  358. finance_dev/models/replaceordrequest_union.py +367 -0
  359. finance_dev/models/replaceordresponse.py +144 -0
  360. finance_dev/models/reportedbsitem.py +53 -0
  361. finance_dev/models/reportedfiling.py +110 -0
  362. finance_dev/models/reportedreport.py +39 -0
  363. finance_dev/models/reportingfrequency.py +16 -0
  364. finance_dev/models/revenuebreakdownaxis.py +52 -0
  365. finance_dev/models/revenuebreakdowndatapoint.py +58 -0
  366. finance_dev/models/revenuebreakdownentry.py +51 -0
  367. finance_dev/models/revenuebreakdowninner.py +75 -0
  368. finance_dev/models/revenueestimatesresponse.py +176 -0
  369. finance_dev/models/screenclause.py +70 -0
  370. finance_dev/models/screengroup.py +75 -0
  371. finance_dev/models/searchetbsymbolsop.py +40 -0
  372. finance_dev/models/searchindicesop.py +55 -0
  373. finance_dev/models/searchlogosop.py +158 -0
  374. finance_dev/models/searchmarketsymbolsop.py +80 -0
  375. finance_dev/models/searchop.py +232 -0
  376. finance_dev/models/searchsymbolitem.py +76 -0
  377. finance_dev/models/searchsymbolresponseitem.py +71 -0
  378. finance_dev/models/searchsymbolsop.py +77 -0
  379. finance_dev/models/secfiling.py +91 -0
  380. finance_dev/models/secfilingsresponse.py +39 -0
  381. finance_dev/models/sectoravgchange.py +50 -0
  382. finance_dev/models/security.py +59 -0
  383. finance_dev/models/securitytypeenum.py +16 -0
  384. finance_dev/models/shortinterestresponse.py +126 -0
  385. finance_dev/models/shortvolumeresponse.py +198 -0
  386. finance_dev/models/socialsentimentresponse.py +124 -0
  387. finance_dev/models/sortorderenum.py +13 -0
  388. finance_dev/models/spinoffsresponse.py +136 -0
  389. finance_dev/models/stockaggregatesresponse.py +92 -0
  390. finance_dev/models/stocklastquoteresponse.py +175 -0
  391. finance_dev/models/stocklasttraderesponse.py +169 -0
  392. finance_dev/models/stockohlcbar.py +85 -0
  393. finance_dev/models/stockopencloseresponse.py +109 -0
  394. finance_dev/models/stockpreviousdayresponse.py +86 -0
  395. finance_dev/models/stockquotesresponse.py +170 -0
  396. finance_dev/models/stockscreenerop.py +144 -0
  397. finance_dev/models/stockscreenerrequest.py +131 -0
  398. finance_dev/models/stockscreenerresponse.py +197 -0
  399. finance_dev/models/stocksnapshotsresponse.py +454 -0
  400. finance_dev/models/stocksplitsresponse.py +144 -0
  401. finance_dev/models/stocktradesresponse.py +164 -0
  402. finance_dev/models/supplychainresponse.py +158 -0
  403. finance_dev/models/supportresistancelevelsresponse.py +68 -0
  404. finance_dev/models/symboldetails.py +119 -0
  405. finance_dev/models/symbolerror.py +43 -0
  406. finance_dev/models/symbolinfo.py +183 -0
  407. finance_dev/models/synclogosop.py +146 -0
  408. finance_dev/models/technicalindicatorresponse.py +43 -0
  409. finance_dev/models/technicalindicatortype.py +21 -0
  410. finance_dev/models/technicalpatternsresponse.py +249 -0
  411. finance_dev/models/tenderofferidentifiertype.py +26 -0
  412. finance_dev/models/tenderoffersresponse.py +548 -0
  413. finance_dev/models/tickchartbars.py +104 -0
  414. finance_dev/models/tickresolution.py +20 -0
  415. finance_dev/models/timeinforceenum.py +26 -0
  416. finance_dev/models/tradeorderlegv2.py +164 -0
  417. finance_dev/models/tradeorderv2.py +434 -0
  418. finance_dev/models/transcriptresponse.py +162 -0
  419. finance_dev/models/transcriptsresponse.py +89 -0
  420. finance_dev/models/treasuryyieldsresponse.py +160 -0
  421. finance_dev/models/unifiedsnapshotresponse.py +308 -0
  422. finance_dev/models/updateconfigwatchlistbyidop.py +65 -0
  423. finance_dev/models/updatewatchlistrequest_union.py +134 -0
  424. finance_dev/models/upgradesdowngradesresponse.py +98 -0
  425. finance_dev/models/usaspendingresponse.py +222 -0
  426. finance_dev/models/usptopatentsresponse.py +134 -0
  427. finance_dev/models/visaapplicationsresponse.py +228 -0
  428. finance_dev/models/watchlist.py +68 -0
  429. finance_dev/models/watchlistrequest.py +43 -0
  430. finance_dev/models/watchlistresponse.py +44 -0
  431. finance_dev/news_sdk.py +829 -0
  432. finance_dev/options.py +3443 -0
  433. finance_dev/orders.py +1907 -0
  434. finance_dev/ownership.py +1386 -0
  435. finance_dev/predictions.py +29 -0
  436. finance_dev/predictions_orders.py +852 -0
  437. finance_dev/py.typed +1 -0
  438. finance_dev/sdk.py +347 -0
  439. finance_dev/sdkconfiguration.py +50 -0
  440. finance_dev/signals.py +338 -0
  441. finance_dev/stocks.py +3131 -0
  442. finance_dev/technicalanalysis_sdk.py +1137 -0
  443. finance_dev/types/__init__.py +25 -0
  444. finance_dev/types/base64fileinput.py +44 -0
  445. finance_dev/types/basemodel.py +78 -0
  446. finance_dev/utils/__init__.py +181 -0
  447. finance_dev/utils/annotations.py +80 -0
  448. finance_dev/utils/datetimes.py +42 -0
  449. finance_dev/utils/dynamic_imports.py +55 -0
  450. finance_dev/utils/enums.py +135 -0
  451. finance_dev/utils/eventstreaming.py +327 -0
  452. finance_dev/utils/forms.py +240 -0
  453. finance_dev/utils/headers.py +137 -0
  454. finance_dev/utils/logger.py +23 -0
  455. finance_dev/utils/metadata.py +120 -0
  456. finance_dev/utils/queryparams.py +218 -0
  457. finance_dev/utils/requestbodies.py +68 -0
  458. finance_dev/utils/retries.py +373 -0
  459. finance_dev/utils/security.py +199 -0
  460. finance_dev/utils/serializers.py +327 -0
  461. finance_dev/utils/unmarshal_json_response.py +39 -0
  462. finance_dev/utils/url.py +155 -0
  463. finance_dev/utils/values.py +143 -0
  464. finance_dev/watchlist_sdk.py +1583 -0
  465. finance_dev/websocket/__init__.py +57 -0
  466. finance_dev/websocket/account.py +5 -0
  467. finance_dev/websocket/auth.py +124 -0
  468. finance_dev/websocket/chart.py +5 -0
  469. finance_dev/websocket/codec.py +66 -0
  470. finance_dev/websocket/config.py +52 -0
  471. finance_dev/websocket/errors.py +54 -0
  472. finance_dev/websocket/market.py +5 -0
  473. finance_dev/websocket/models/__init__.py +52 -0
  474. finance_dev/websocket/models/account.py +60 -0
  475. finance_dev/websocket/models/chart.py +44 -0
  476. finance_dev/websocket/models/common.py +85 -0
  477. finance_dev/websocket/models/market.py +113 -0
  478. finance_dev/websocket/resources.py +327 -0
  479. finance_dev/websocket/sdk.py +13 -0
  480. finance_dev/websocket/transport/async_connection.py +493 -0
  481. finance_dev/websocket/transport/base.py +78 -0
  482. finance_dev/websocket/transport/sync_connection.py +470 -0
  483. finance_dev-0.9.0.dist-info/METADATA +913 -0
  484. finance_dev-0.9.0.dist-info/RECORD +486 -0
  485. finance_dev-0.9.0.dist-info/WHEEL +5 -0
  486. finance_dev-0.9.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,124 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: e90372b13cfc
3
+
4
+ from __future__ import annotations
5
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
6
+ from .symboldetails import SymbolDetails, SymbolDetailsTypedDict
7
+ from enum import Enum
8
+ from finance_dev import models, utils
9
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
10
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
11
+ import pydantic
12
+ from pydantic import field_serializer, model_serializer
13
+ from typing import List, Optional
14
+ from typing_extensions import Annotated, NotRequired, TypedDict
15
+
16
+
17
+ class Sector(str, Enum, metaclass=utils.OpenEnumMeta):
18
+ r"""Which industry sector to list tickers for. Use the exact uppercase value (including spaces) — these match the values returned by [GET /v1/equity/sector-wise-change](/api-reference/analytics/equity-sector-wise-change).
19
+ - `TECHNOLOGY` — software, hardware, semiconductors
20
+ - `HEALTHCARE` — pharma, biotech, medical devices, providers
21
+ - `FINANCIAL SERVICES` — banks, insurance, asset managers
22
+ - `CONSUMER CYCLICAL` — discretionary spending (autos, retail, travel)
23
+ - `CONSUMER DEFENSIVE` — staples (food, household goods, drugstores)
24
+ - `INDUSTRIALS` — manufacturing, transport, defense, machinery
25
+ - `ENERGY` — oil & gas, renewable energy
26
+ - `UTILITIES` — power, water, gas distribution
27
+ - `BASIC MATERIALS` — mining, chemicals, paper, metals
28
+ - `COMMUNICATION SERVICES` — telecom, media, internet platforms
29
+ - `REAL ESTATE` — REITs and real-estate operators
30
+ - `OTHER` — uncategorized
31
+ - `NONE` — no sector classification
32
+ """
33
+
34
+ HEALTHCARE = "HEALTHCARE"
35
+ UTILITIES = "UTILITIES"
36
+ CONSUMER_CYCLICAL = "CONSUMER CYCLICAL"
37
+ INDUSTRIALS = "INDUSTRIALS"
38
+ CONSUMER_DEFENSIVE = "CONSUMER DEFENSIVE"
39
+ BASIC_MATERIALS = "BASIC MATERIALS"
40
+ COMMUNICATION_SERVICES = "COMMUNICATION SERVICES"
41
+ FINANCIAL_SERVICES = "FINANCIAL SERVICES"
42
+ TECHNOLOGY = "TECHNOLOGY"
43
+ REAL_ESTATE = "REAL ESTATE"
44
+ NONE = "NONE"
45
+ OTHER = "OTHER"
46
+ ENERGY = "ENERGY"
47
+
48
+
49
+ class GetSectorTickersRequestTypedDict(TypedDict):
50
+ sector: Sector
51
+ r"""Which industry sector to list tickers for. Use the exact uppercase value (including spaces) — these match the values returned by [GET /v1/equity/sector-wise-change](/api-reference/analytics/equity-sector-wise-change).
52
+ - `TECHNOLOGY` — software, hardware, semiconductors
53
+ - `HEALTHCARE` — pharma, biotech, medical devices, providers
54
+ - `FINANCIAL SERVICES` — banks, insurance, asset managers
55
+ - `CONSUMER CYCLICAL` — discretionary spending (autos, retail, travel)
56
+ - `CONSUMER DEFENSIVE` — staples (food, household goods, drugstores)
57
+ - `INDUSTRIALS` — manufacturing, transport, defense, machinery
58
+ - `ENERGY` — oil & gas, renewable energy
59
+ - `UTILITIES` — power, water, gas distribution
60
+ - `BASIC MATERIALS` — mining, chemicals, paper, metals
61
+ - `COMMUNICATION SERVICES` — telecom, media, internet platforms
62
+ - `REAL ESTATE` — REITs and real-estate operators
63
+ - `OTHER` — uncategorized
64
+ - `NONE` — no sector classification
65
+ """
66
+
67
+
68
+ class GetSectorTickersRequest(BaseModel):
69
+ sector: Annotated[
70
+ Sector, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
71
+ ]
72
+ r"""Which industry sector to list tickers for. Use the exact uppercase value (including spaces) — these match the values returned by [GET /v1/equity/sector-wise-change](/api-reference/analytics/equity-sector-wise-change).
73
+ - `TECHNOLOGY` — software, hardware, semiconductors
74
+ - `HEALTHCARE` — pharma, biotech, medical devices, providers
75
+ - `FINANCIAL SERVICES` — banks, insurance, asset managers
76
+ - `CONSUMER CYCLICAL` — discretionary spending (autos, retail, travel)
77
+ - `CONSUMER DEFENSIVE` — staples (food, household goods, drugstores)
78
+ - `INDUSTRIALS` — manufacturing, transport, defense, machinery
79
+ - `ENERGY` — oil & gas, renewable energy
80
+ - `UTILITIES` — power, water, gas distribution
81
+ - `BASIC MATERIALS` — mining, chemicals, paper, metals
82
+ - `COMMUNICATION SERVICES` — telecom, media, internet platforms
83
+ - `REAL ESTATE` — REITs and real-estate operators
84
+ - `OTHER` — uncategorized
85
+ - `NONE` — no sector classification
86
+ """
87
+
88
+ @field_serializer("sector")
89
+ def serialize_sector(self, value):
90
+ if isinstance(value, str):
91
+ try:
92
+ return models.Sector(value)
93
+ except ValueError:
94
+ return value
95
+ return value
96
+
97
+
98
+ class GetSectorTickersResponseTypedDict(TypedDict):
99
+ http_meta: HTTPMetadataTypedDict
100
+ symbol_details: NotRequired[List[SymbolDetailsTypedDict]]
101
+ r"""Sector tickers retrieved successfully"""
102
+
103
+
104
+ class GetSectorTickersResponse(BaseModel):
105
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
106
+
107
+ symbol_details: Optional[List[SymbolDetails]] = None
108
+ r"""Sector tickers retrieved successfully"""
109
+
110
+ @model_serializer(mode="wrap")
111
+ def serialize_model(self, handler):
112
+ optional_fields = set(["SymbolDetails"])
113
+ serialized = handler(self)
114
+ m = {}
115
+
116
+ for n, f in type(self).model_fields.items():
117
+ k = f.alias or n
118
+ val = serialized.get(k, serialized.get(n))
119
+
120
+ if val != UNSET_SENTINEL:
121
+ if val is not None or k not in optional_fields:
122
+ m[k] = val
123
+
124
+ return m
@@ -0,0 +1,84 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: bff276b123b2
3
+
4
+ from __future__ import annotations
5
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
6
+ from .sectoravgchange import SectorAvgChange, SectorAvgChangeTypedDict
7
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
8
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
9
+ import pydantic
10
+ from pydantic import model_serializer
11
+ from typing import List, Optional
12
+ from typing_extensions import Annotated, NotRequired, TypedDict
13
+
14
+
15
+ class GetSectorWiseChangeRequestTypedDict(TypedDict):
16
+ limit: NotRequired[str]
17
+ r"""Maximum number of sectors to return. Two formats are accepted:
18
+ - An integer like `5`, `10`, `15` to cap the list (default `15`).
19
+ - The literal string `all` to return every sector with no cap.
20
+ """
21
+ size: NotRequired[str]
22
+ r"""Alias for limit. Ignored when limit is supplied."""
23
+
24
+
25
+ class GetSectorWiseChangeRequest(BaseModel):
26
+ limit: Annotated[
27
+ Optional[str],
28
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
29
+ ] = None
30
+ r"""Maximum number of sectors to return. Two formats are accepted:
31
+ - An integer like `5`, `10`, `15` to cap the list (default `15`).
32
+ - The literal string `all` to return every sector with no cap.
33
+ """
34
+
35
+ size: Annotated[
36
+ Optional[str],
37
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
38
+ ] = None
39
+ r"""Alias for limit. Ignored when limit is supplied."""
40
+
41
+ @model_serializer(mode="wrap")
42
+ def serialize_model(self, handler):
43
+ optional_fields = set(["limit", "size"])
44
+ serialized = handler(self)
45
+ m = {}
46
+
47
+ for n, f in type(self).model_fields.items():
48
+ k = f.alias or n
49
+ val = serialized.get(k, serialized.get(n))
50
+
51
+ if val != UNSET_SENTINEL:
52
+ if val is not None or k not in optional_fields:
53
+ m[k] = val
54
+
55
+ return m
56
+
57
+
58
+ class GetSectorWiseChangeResponseTypedDict(TypedDict):
59
+ http_meta: HTTPMetadataTypedDict
60
+ sector_avg_changes: NotRequired[List[SectorAvgChangeTypedDict]]
61
+ r"""Sector-wise changes retrieved successfully"""
62
+
63
+
64
+ class GetSectorWiseChangeResponse(BaseModel):
65
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
66
+
67
+ sector_avg_changes: Optional[List[SectorAvgChange]] = None
68
+ r"""Sector-wise changes retrieved successfully"""
69
+
70
+ @model_serializer(mode="wrap")
71
+ def serialize_model(self, handler):
72
+ optional_fields = set(["SectorAvgChanges"])
73
+ serialized = handler(self)
74
+ m = {}
75
+
76
+ for n, f in type(self).model_fields.items():
77
+ k = f.alias or n
78
+ val = serialized.get(k, serialized.get(n))
79
+
80
+ if val != UNSET_SENTINEL:
81
+ if val is not None or k not in optional_fields:
82
+ m[k] = val
83
+
84
+ return m
@@ -0,0 +1,334 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 4f4180ea4f37
3
+
4
+ from __future__ import annotations
5
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
6
+ from .shortinterestresponse import ShortInterestResponse, ShortInterestResponseTypedDict
7
+ from datetime import date
8
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
9
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
10
+ import pydantic
11
+ from pydantic import model_serializer
12
+ from typing import Callable, Optional
13
+ from typing_extensions import Annotated, NotRequired, TypedDict
14
+
15
+
16
+ class GetShortInterestRequestTypedDict(TypedDict):
17
+ ticker: NotRequired[str]
18
+ r"""Single ticker symbol filter. Enter one ticker such as AAPL to narrow results to one company."""
19
+ tickers_any_of: NotRequired[str]
20
+ r"""Comma-separated list of ticker symbols."""
21
+ ticker_after: NotRequired[str]
22
+ r"""Ticker pagination lower bound. Returns symbols alphabetically after this ticker, excluding the ticker itself."""
23
+ ticker_from: NotRequired[str]
24
+ r"""Ticker greater than or equal (inclusive)"""
25
+ ticker_before: NotRequired[str]
26
+ r"""Ticker pagination upper bound. Returns symbols alphabetically before this ticker, excluding the ticker itself."""
27
+ ticker_to: NotRequired[str]
28
+ r"""Ticker less than or equal (inclusive)"""
29
+ days_to_cover: NotRequired[float]
30
+ r"""Exact days-to-cover filter for short interest. Use it when screening for one short-squeeze risk value."""
31
+ days_to_cover_list: NotRequired[str]
32
+ r"""Comma-separated list of days to cover"""
33
+ days_to_cover_above: NotRequired[float]
34
+ r"""Days to cover greater than (exclusive)"""
35
+ days_to_cover_min: NotRequired[float]
36
+ r"""Days to cover greater than or equal (inclusive)"""
37
+ days_to_cover_below: NotRequired[float]
38
+ r"""Days to cover less than (exclusive)"""
39
+ days_to_cover_max: NotRequired[float]
40
+ r"""Days to cover less than or equal (inclusive)"""
41
+ settlement_date: NotRequired[date]
42
+ r"""Settlement date in YYYY-MM-DD format. Use it to filter short-interest records by reporting settlement date."""
43
+ settlement_dates: NotRequired[str]
44
+ r"""Comma-separated list of settlement dates"""
45
+ settlement_date_after: NotRequired[date]
46
+ r"""Settlement-date lower-bound filter. Returns records after this date, excluding the date itself."""
47
+ settlement_date_from: NotRequired[date]
48
+ r"""Settlement-date start filter. Returns records on or after this date."""
49
+ settlement_date_before: NotRequired[date]
50
+ r"""Settlement-date upper-bound filter. Returns records before this date, excluding the date itself."""
51
+ settlement_date_to: NotRequired[date]
52
+ r"""Settlement-date end filter. Returns records on or before this date."""
53
+ avg_daily_volume: NotRequired[int]
54
+ r"""Exact average-daily-volume filter. Use it when screening for one specific liquidity value."""
55
+ avg_daily_volume_list: NotRequired[str]
56
+ r"""Comma-separated list of average daily volumes"""
57
+ avg_daily_volume_above: NotRequired[int]
58
+ r"""Average daily volume greater than (exclusive)"""
59
+ avg_daily_volume_min: NotRequired[int]
60
+ r"""Average daily volume greater than or equal (inclusive)"""
61
+ avg_daily_volume_below: NotRequired[int]
62
+ r"""Average daily volume less than (exclusive)"""
63
+ avg_daily_volume_max: NotRequired[int]
64
+ r"""Average daily volume less than or equal (inclusive)"""
65
+ limit: NotRequired[int]
66
+ r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits."""
67
+ sort: NotRequired[str]
68
+ r"""A comma-separated list of sort columns. For each column, append `.asc` or `.desc` to specify direction. Defaults to `ticker.asc` when not specified."""
69
+ next: NotRequired[str]
70
+ r"""Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page."""
71
+
72
+
73
+ class GetShortInterestRequest(BaseModel):
74
+ ticker: Annotated[
75
+ Optional[str],
76
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
77
+ ] = None
78
+ r"""Single ticker symbol filter. Enter one ticker such as AAPL to narrow results to one company."""
79
+
80
+ tickers_any_of: Annotated[
81
+ Optional[str],
82
+ pydantic.Field(alias="tickersAnyOf"),
83
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
84
+ ] = None
85
+ r"""Comma-separated list of ticker symbols."""
86
+
87
+ ticker_after: Annotated[
88
+ Optional[str],
89
+ pydantic.Field(alias="tickerAfter"),
90
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
91
+ ] = None
92
+ r"""Ticker pagination lower bound. Returns symbols alphabetically after this ticker, excluding the ticker itself."""
93
+
94
+ ticker_from: Annotated[
95
+ Optional[str],
96
+ pydantic.Field(alias="tickerFrom"),
97
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
98
+ ] = None
99
+ r"""Ticker greater than or equal (inclusive)"""
100
+
101
+ ticker_before: Annotated[
102
+ Optional[str],
103
+ pydantic.Field(alias="tickerBefore"),
104
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
105
+ ] = None
106
+ r"""Ticker pagination upper bound. Returns symbols alphabetically before this ticker, excluding the ticker itself."""
107
+
108
+ ticker_to: Annotated[
109
+ Optional[str],
110
+ pydantic.Field(alias="tickerTo"),
111
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
112
+ ] = None
113
+ r"""Ticker less than or equal (inclusive)"""
114
+
115
+ days_to_cover: Annotated[
116
+ Optional[float],
117
+ pydantic.Field(alias="daysToCover"),
118
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
119
+ ] = None
120
+ r"""Exact days-to-cover filter for short interest. Use it when screening for one short-squeeze risk value."""
121
+
122
+ days_to_cover_list: Annotated[
123
+ Optional[str],
124
+ pydantic.Field(alias="daysToCoverList"),
125
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
126
+ ] = None
127
+ r"""Comma-separated list of days to cover"""
128
+
129
+ days_to_cover_above: Annotated[
130
+ Optional[float],
131
+ pydantic.Field(alias="daysToCoverAbove"),
132
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
133
+ ] = None
134
+ r"""Days to cover greater than (exclusive)"""
135
+
136
+ days_to_cover_min: Annotated[
137
+ Optional[float],
138
+ pydantic.Field(alias="daysToCoverMin"),
139
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
140
+ ] = None
141
+ r"""Days to cover greater than or equal (inclusive)"""
142
+
143
+ days_to_cover_below: Annotated[
144
+ Optional[float],
145
+ pydantic.Field(alias="daysToCoverBelow"),
146
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
147
+ ] = None
148
+ r"""Days to cover less than (exclusive)"""
149
+
150
+ days_to_cover_max: Annotated[
151
+ Optional[float],
152
+ pydantic.Field(alias="daysToCoverMax"),
153
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
154
+ ] = None
155
+ r"""Days to cover less than or equal (inclusive)"""
156
+
157
+ settlement_date: Annotated[
158
+ Optional[date],
159
+ pydantic.Field(alias="settlementDate"),
160
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
161
+ ] = None
162
+ r"""Settlement date in YYYY-MM-DD format. Use it to filter short-interest records by reporting settlement date."""
163
+
164
+ settlement_dates: Annotated[
165
+ Optional[str],
166
+ pydantic.Field(alias="settlementDates"),
167
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
168
+ ] = None
169
+ r"""Comma-separated list of settlement dates"""
170
+
171
+ settlement_date_after: Annotated[
172
+ Optional[date],
173
+ pydantic.Field(alias="settlementDateAfter"),
174
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
175
+ ] = None
176
+ r"""Settlement-date lower-bound filter. Returns records after this date, excluding the date itself."""
177
+
178
+ settlement_date_from: Annotated[
179
+ Optional[date],
180
+ pydantic.Field(alias="settlementDateFrom"),
181
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
182
+ ] = None
183
+ r"""Settlement-date start filter. Returns records on or after this date."""
184
+
185
+ settlement_date_before: Annotated[
186
+ Optional[date],
187
+ pydantic.Field(alias="settlementDateBefore"),
188
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
189
+ ] = None
190
+ r"""Settlement-date upper-bound filter. Returns records before this date, excluding the date itself."""
191
+
192
+ settlement_date_to: Annotated[
193
+ Optional[date],
194
+ pydantic.Field(alias="settlementDateTo"),
195
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
196
+ ] = None
197
+ r"""Settlement-date end filter. Returns records on or before this date."""
198
+
199
+ avg_daily_volume: Annotated[
200
+ Optional[int],
201
+ pydantic.Field(alias="avgDailyVolume"),
202
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
203
+ ] = None
204
+ r"""Exact average-daily-volume filter. Use it when screening for one specific liquidity value."""
205
+
206
+ avg_daily_volume_list: Annotated[
207
+ Optional[str],
208
+ pydantic.Field(alias="avgDailyVolumeList"),
209
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
210
+ ] = None
211
+ r"""Comma-separated list of average daily volumes"""
212
+
213
+ avg_daily_volume_above: Annotated[
214
+ Optional[int],
215
+ pydantic.Field(alias="avgDailyVolumeAbove"),
216
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
217
+ ] = None
218
+ r"""Average daily volume greater than (exclusive)"""
219
+
220
+ avg_daily_volume_min: Annotated[
221
+ Optional[int],
222
+ pydantic.Field(alias="avgDailyVolumeMin"),
223
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
224
+ ] = None
225
+ r"""Average daily volume greater than or equal (inclusive)"""
226
+
227
+ avg_daily_volume_below: Annotated[
228
+ Optional[int],
229
+ pydantic.Field(alias="avgDailyVolumeBelow"),
230
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
231
+ ] = None
232
+ r"""Average daily volume less than (exclusive)"""
233
+
234
+ avg_daily_volume_max: Annotated[
235
+ Optional[int],
236
+ pydantic.Field(alias="avgDailyVolumeMax"),
237
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
238
+ ] = None
239
+ r"""Average daily volume less than or equal (inclusive)"""
240
+
241
+ limit: Annotated[
242
+ Optional[int],
243
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
244
+ ] = None
245
+ r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits."""
246
+
247
+ sort: Annotated[
248
+ Optional[str],
249
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
250
+ ] = None
251
+ r"""A comma-separated list of sort columns. For each column, append `.asc` or `.desc` to specify direction. Defaults to `ticker.asc` when not specified."""
252
+
253
+ next: Annotated[
254
+ Optional[str],
255
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
256
+ ] = None
257
+ r"""Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page."""
258
+
259
+ @model_serializer(mode="wrap")
260
+ def serialize_model(self, handler):
261
+ optional_fields = set(
262
+ [
263
+ "ticker",
264
+ "tickersAnyOf",
265
+ "tickerAfter",
266
+ "tickerFrom",
267
+ "tickerBefore",
268
+ "tickerTo",
269
+ "daysToCover",
270
+ "daysToCoverList",
271
+ "daysToCoverAbove",
272
+ "daysToCoverMin",
273
+ "daysToCoverBelow",
274
+ "daysToCoverMax",
275
+ "settlementDate",
276
+ "settlementDates",
277
+ "settlementDateAfter",
278
+ "settlementDateFrom",
279
+ "settlementDateBefore",
280
+ "settlementDateTo",
281
+ "avgDailyVolume",
282
+ "avgDailyVolumeList",
283
+ "avgDailyVolumeAbove",
284
+ "avgDailyVolumeMin",
285
+ "avgDailyVolumeBelow",
286
+ "avgDailyVolumeMax",
287
+ "limit",
288
+ "sort",
289
+ "next",
290
+ ]
291
+ )
292
+ serialized = handler(self)
293
+ m = {}
294
+
295
+ for n, f in type(self).model_fields.items():
296
+ k = f.alias or n
297
+ val = serialized.get(k, serialized.get(n))
298
+
299
+ if val != UNSET_SENTINEL:
300
+ if val is not None or k not in optional_fields:
301
+ m[k] = val
302
+
303
+ return m
304
+
305
+
306
+ class GetShortInterestResponseTypedDict(TypedDict):
307
+ http_meta: HTTPMetadataTypedDict
308
+ short_interest_response: NotRequired[ShortInterestResponseTypedDict]
309
+ r"""Successful response"""
310
+
311
+
312
+ class GetShortInterestResponse(BaseModel):
313
+ next: Callable[[], Optional[GetShortInterestResponse]]
314
+
315
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
316
+
317
+ short_interest_response: Optional[ShortInterestResponse] = None
318
+ r"""Successful response"""
319
+
320
+ @model_serializer(mode="wrap")
321
+ def serialize_model(self, handler):
322
+ optional_fields = set(["ShortInterestResponse"])
323
+ serialized = handler(self)
324
+ m = {}
325
+
326
+ for n, f in type(self).model_fields.items():
327
+ k = f.alias or n
328
+ val = serialized.get(k, serialized.get(n))
329
+
330
+ if val != UNSET_SENTINEL:
331
+ if val is not None or k not in optional_fields:
332
+ m[k] = val
333
+
334
+ return m