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,612 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 030d27e2567d
3
+
4
+ from __future__ import annotations
5
+ from .financialratiosresponse import (
6
+ FinancialRatiosResponse,
7
+ FinancialRatiosResponseTypedDict,
8
+ )
9
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
10
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
11
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
12
+ import pydantic
13
+ from pydantic import model_serializer
14
+ from typing import Callable, Optional
15
+ from typing_extensions import Annotated, NotRequired, TypedDict
16
+
17
+
18
+ class GetFinancialRatiosRequestTypedDict(TypedDict):
19
+ ticker: NotRequired[str]
20
+ r"""Single ticker symbol filter. Enter one ticker such as AAPL to narrow results to one company."""
21
+ tickers_any_of: NotRequired[str]
22
+ r"""Comma-separated list of ticker symbols."""
23
+ ticker_after: NotRequired[str]
24
+ r"""Ticker pagination lower bound. Returns symbols alphabetically after this ticker, excluding the ticker itself."""
25
+ ticker_from: NotRequired[str]
26
+ r"""Ticker greater than or equal (inclusive)"""
27
+ ticker_before: NotRequired[str]
28
+ r"""Ticker pagination upper bound. Returns symbols alphabetically before this ticker, excluding the ticker itself."""
29
+ ticker_to: NotRequired[str]
30
+ r"""Ticker less than or equal (inclusive)"""
31
+ cik: NotRequired[str]
32
+ r"""CIK company identifier from the SEC. Use this when filtering by SEC registrant instead of ticker."""
33
+ ciks: NotRequired[str]
34
+ r"""Comma-separated SEC CIK identifiers. Use this to filter several registrants in one request."""
35
+ cik_after: NotRequired[str]
36
+ r"""CIK pagination lower bound. Returns records with CIK values greater than this value, excluding the value itself."""
37
+ cik_from: NotRequired[str]
38
+ r"""CIK greater than or equal (inclusive)"""
39
+ cik_before: NotRequired[str]
40
+ r"""CIK pagination upper bound. Returns records with CIK values less than this value, excluding the value itself."""
41
+ cik_to: NotRequired[str]
42
+ r"""CIK upper-bound filter. Returns records with CIK values less than or equal to this value."""
43
+ price: NotRequired[float]
44
+ r"""Exact price filter. Use it when you need records matching one specific price value."""
45
+ price_above: NotRequired[float]
46
+ r"""Price lower-bound filter. Returns records above this value, excluding the value itself."""
47
+ price_min: NotRequired[float]
48
+ r"""Price greater than or equal (inclusive)"""
49
+ price_below: NotRequired[float]
50
+ r"""Price upper-bound filter. Returns records below this value, excluding the value itself."""
51
+ price_max: NotRequired[float]
52
+ r"""Price less than or equal (inclusive)"""
53
+ average_volume: NotRequired[float]
54
+ r"""Exact average-volume filter. Use it when screening for one specific average volume value."""
55
+ average_volume_above: NotRequired[float]
56
+ r"""Average volume greater than (exclusive)"""
57
+ average_volume_min: NotRequired[float]
58
+ r"""Average volume greater than or equal (inclusive)"""
59
+ average_volume_below: NotRequired[float]
60
+ r"""Average volume less than (exclusive)"""
61
+ average_volume_max: NotRequired[float]
62
+ r"""Average volume less than or equal (inclusive)"""
63
+ market_cap: NotRequired[float]
64
+ r"""Exact market-cap filter. Use it when screening for one specific company size value."""
65
+ market_cap_above: NotRequired[float]
66
+ r"""Market cap greater than (exclusive)"""
67
+ market_cap_min: NotRequired[float]
68
+ r"""Market cap greater than or equal (inclusive)"""
69
+ market_cap_below: NotRequired[float]
70
+ r"""Market-cap upper-bound filter. Returns companies below this value, excluding the value itself."""
71
+ market_cap_max: NotRequired[float]
72
+ r"""Market cap less than or equal (inclusive)"""
73
+ eps: NotRequired[float]
74
+ r"""Exact earnings-per-share filter. Use it when screening for one EPS value."""
75
+ eps_above: NotRequired[float]
76
+ r"""EPS lower-bound filter. Returns companies with EPS above this value, excluding the value itself."""
77
+ eps_min: NotRequired[float]
78
+ r"""EPS greater than or equal (inclusive)"""
79
+ eps_below: NotRequired[float]
80
+ r"""EPS upper-bound filter. Returns companies with EPS below this value, excluding the value itself."""
81
+ eps_max: NotRequired[float]
82
+ r"""EPS upper-bound filter. Returns companies with EPS less than or equal to this value."""
83
+ pe_ratio: NotRequired[float]
84
+ r"""Exact price-to-earnings ratio filter. Use it when screening for one valuation value."""
85
+ pe_ratio_above: NotRequired[float]
86
+ r"""P/E ratio lower-bound filter. Returns companies above this valuation, excluding the value itself."""
87
+ pe_ratio_min: NotRequired[float]
88
+ r"""P/E ratio greater than or equal (inclusive)"""
89
+ pe_ratio_below: NotRequired[float]
90
+ r"""P/E ratio upper-bound filter. Returns companies below this valuation, excluding the value itself."""
91
+ pe_ratio_max: NotRequired[float]
92
+ r"""P/E ratio less than or equal (inclusive)"""
93
+ pb_ratio: NotRequired[float]
94
+ r"""Exact price-to-book ratio filter. Use it when screening for one valuation value."""
95
+ pb_ratio_above: NotRequired[float]
96
+ r"""P/B ratio lower-bound filter. Returns companies above this valuation, excluding the value itself."""
97
+ pb_ratio_min: NotRequired[float]
98
+ r"""P/B ratio greater than or equal (inclusive)"""
99
+ pb_ratio_below: NotRequired[float]
100
+ r"""P/B ratio upper-bound filter. Returns companies below this valuation, excluding the value itself."""
101
+ pb_ratio_max: NotRequired[float]
102
+ r"""P/B ratio less than or equal (inclusive)"""
103
+ ps_ratio: NotRequired[float]
104
+ r"""Exact price-to-sales ratio filter. Use it when screening for one valuation value."""
105
+ ps_ratio_above: NotRequired[float]
106
+ r"""P/S ratio lower-bound filter. Returns companies above this valuation, excluding the value itself."""
107
+ ps_ratio_min: NotRequired[float]
108
+ r"""P/S ratio greater than or equal (inclusive)"""
109
+ ps_ratio_below: NotRequired[float]
110
+ r"""P/S ratio upper-bound filter. Returns companies below this valuation, excluding the value itself."""
111
+ ps_ratio_max: NotRequired[float]
112
+ r"""P/S ratio less than or equal (inclusive)"""
113
+ pcf_ratio: NotRequired[float]
114
+ r"""Exact price-to-cash-flow ratio filter. Use it when screening for one valuation value."""
115
+ pcf_ratio_above: NotRequired[float]
116
+ r"""P/CF ratio greater than (exclusive)"""
117
+ pcf_ratio_min: NotRequired[float]
118
+ r"""P/CF ratio greater than or equal (inclusive)"""
119
+ pcf_ratio_below: NotRequired[float]
120
+ r"""P/CF ratio upper-bound filter. Returns companies below this valuation, excluding the value itself."""
121
+ pcf_ratio_max: NotRequired[float]
122
+ r"""P/CF ratio less than or equal (inclusive)"""
123
+ limit: NotRequired[int]
124
+ r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits."""
125
+ sort: NotRequired[str]
126
+ 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."""
127
+ next: NotRequired[str]
128
+ r"""Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page."""
129
+
130
+
131
+ class GetFinancialRatiosRequest(BaseModel):
132
+ ticker: Annotated[
133
+ Optional[str],
134
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
135
+ ] = None
136
+ r"""Single ticker symbol filter. Enter one ticker such as AAPL to narrow results to one company."""
137
+
138
+ tickers_any_of: Annotated[
139
+ Optional[str],
140
+ pydantic.Field(alias="tickersAnyOf"),
141
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
142
+ ] = None
143
+ r"""Comma-separated list of ticker symbols."""
144
+
145
+ ticker_after: Annotated[
146
+ Optional[str],
147
+ pydantic.Field(alias="tickerAfter"),
148
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
149
+ ] = None
150
+ r"""Ticker pagination lower bound. Returns symbols alphabetically after this ticker, excluding the ticker itself."""
151
+
152
+ ticker_from: Annotated[
153
+ Optional[str],
154
+ pydantic.Field(alias="tickerFrom"),
155
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
156
+ ] = None
157
+ r"""Ticker greater than or equal (inclusive)"""
158
+
159
+ ticker_before: Annotated[
160
+ Optional[str],
161
+ pydantic.Field(alias="tickerBefore"),
162
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
163
+ ] = None
164
+ r"""Ticker pagination upper bound. Returns symbols alphabetically before this ticker, excluding the ticker itself."""
165
+
166
+ ticker_to: Annotated[
167
+ Optional[str],
168
+ pydantic.Field(alias="tickerTo"),
169
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
170
+ ] = None
171
+ r"""Ticker less than or equal (inclusive)"""
172
+
173
+ cik: Annotated[
174
+ Optional[str],
175
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
176
+ ] = None
177
+ r"""CIK company identifier from the SEC. Use this when filtering by SEC registrant instead of ticker."""
178
+
179
+ ciks: Annotated[
180
+ Optional[str],
181
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
182
+ ] = None
183
+ r"""Comma-separated SEC CIK identifiers. Use this to filter several registrants in one request."""
184
+
185
+ cik_after: Annotated[
186
+ Optional[str],
187
+ pydantic.Field(alias="cikAfter"),
188
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
189
+ ] = None
190
+ r"""CIK pagination lower bound. Returns records with CIK values greater than this value, excluding the value itself."""
191
+
192
+ cik_from: Annotated[
193
+ Optional[str],
194
+ pydantic.Field(alias="cikFrom"),
195
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
196
+ ] = None
197
+ r"""CIK greater than or equal (inclusive)"""
198
+
199
+ cik_before: Annotated[
200
+ Optional[str],
201
+ pydantic.Field(alias="cikBefore"),
202
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
203
+ ] = None
204
+ r"""CIK pagination upper bound. Returns records with CIK values less than this value, excluding the value itself."""
205
+
206
+ cik_to: Annotated[
207
+ Optional[str],
208
+ pydantic.Field(alias="cikTo"),
209
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
210
+ ] = None
211
+ r"""CIK upper-bound filter. Returns records with CIK values less than or equal to this value."""
212
+
213
+ price: Annotated[
214
+ Optional[float],
215
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
216
+ ] = None
217
+ r"""Exact price filter. Use it when you need records matching one specific price value."""
218
+
219
+ price_above: Annotated[
220
+ Optional[float],
221
+ pydantic.Field(alias="priceAbove"),
222
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
223
+ ] = None
224
+ r"""Price lower-bound filter. Returns records above this value, excluding the value itself."""
225
+
226
+ price_min: Annotated[
227
+ Optional[float],
228
+ pydantic.Field(alias="priceMin"),
229
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
230
+ ] = None
231
+ r"""Price greater than or equal (inclusive)"""
232
+
233
+ price_below: Annotated[
234
+ Optional[float],
235
+ pydantic.Field(alias="priceBelow"),
236
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
237
+ ] = None
238
+ r"""Price upper-bound filter. Returns records below this value, excluding the value itself."""
239
+
240
+ price_max: Annotated[
241
+ Optional[float],
242
+ pydantic.Field(alias="priceMax"),
243
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
244
+ ] = None
245
+ r"""Price less than or equal (inclusive)"""
246
+
247
+ average_volume: Annotated[
248
+ Optional[float],
249
+ pydantic.Field(alias="averageVolume"),
250
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
251
+ ] = None
252
+ r"""Exact average-volume filter. Use it when screening for one specific average volume value."""
253
+
254
+ average_volume_above: Annotated[
255
+ Optional[float],
256
+ pydantic.Field(alias="averageVolumeAbove"),
257
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
258
+ ] = None
259
+ r"""Average volume greater than (exclusive)"""
260
+
261
+ average_volume_min: Annotated[
262
+ Optional[float],
263
+ pydantic.Field(alias="averageVolumeMin"),
264
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
265
+ ] = None
266
+ r"""Average volume greater than or equal (inclusive)"""
267
+
268
+ average_volume_below: Annotated[
269
+ Optional[float],
270
+ pydantic.Field(alias="averageVolumeBelow"),
271
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
272
+ ] = None
273
+ r"""Average volume less than (exclusive)"""
274
+
275
+ average_volume_max: Annotated[
276
+ Optional[float],
277
+ pydantic.Field(alias="averageVolumeMax"),
278
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
279
+ ] = None
280
+ r"""Average volume less than or equal (inclusive)"""
281
+
282
+ market_cap: Annotated[
283
+ Optional[float],
284
+ pydantic.Field(alias="marketCap"),
285
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
286
+ ] = None
287
+ r"""Exact market-cap filter. Use it when screening for one specific company size value."""
288
+
289
+ market_cap_above: Annotated[
290
+ Optional[float],
291
+ pydantic.Field(alias="marketCapAbove"),
292
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
293
+ ] = None
294
+ r"""Market cap greater than (exclusive)"""
295
+
296
+ market_cap_min: Annotated[
297
+ Optional[float],
298
+ pydantic.Field(alias="marketCapMin"),
299
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
300
+ ] = None
301
+ r"""Market cap greater than or equal (inclusive)"""
302
+
303
+ market_cap_below: Annotated[
304
+ Optional[float],
305
+ pydantic.Field(alias="marketCapBelow"),
306
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
307
+ ] = None
308
+ r"""Market-cap upper-bound filter. Returns companies below this value, excluding the value itself."""
309
+
310
+ market_cap_max: Annotated[
311
+ Optional[float],
312
+ pydantic.Field(alias="marketCapMax"),
313
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
314
+ ] = None
315
+ r"""Market cap less than or equal (inclusive)"""
316
+
317
+ eps: Annotated[
318
+ Optional[float],
319
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
320
+ ] = None
321
+ r"""Exact earnings-per-share filter. Use it when screening for one EPS value."""
322
+
323
+ eps_above: Annotated[
324
+ Optional[float],
325
+ pydantic.Field(alias="epsAbove"),
326
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
327
+ ] = None
328
+ r"""EPS lower-bound filter. Returns companies with EPS above this value, excluding the value itself."""
329
+
330
+ eps_min: Annotated[
331
+ Optional[float],
332
+ pydantic.Field(alias="epsMin"),
333
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
334
+ ] = None
335
+ r"""EPS greater than or equal (inclusive)"""
336
+
337
+ eps_below: Annotated[
338
+ Optional[float],
339
+ pydantic.Field(alias="epsBelow"),
340
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
341
+ ] = None
342
+ r"""EPS upper-bound filter. Returns companies with EPS below this value, excluding the value itself."""
343
+
344
+ eps_max: Annotated[
345
+ Optional[float],
346
+ pydantic.Field(alias="epsMax"),
347
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
348
+ ] = None
349
+ r"""EPS upper-bound filter. Returns companies with EPS less than or equal to this value."""
350
+
351
+ pe_ratio: Annotated[
352
+ Optional[float],
353
+ pydantic.Field(alias="peRatio"),
354
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
355
+ ] = None
356
+ r"""Exact price-to-earnings ratio filter. Use it when screening for one valuation value."""
357
+
358
+ pe_ratio_above: Annotated[
359
+ Optional[float],
360
+ pydantic.Field(alias="peRatioAbove"),
361
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
362
+ ] = None
363
+ r"""P/E ratio lower-bound filter. Returns companies above this valuation, excluding the value itself."""
364
+
365
+ pe_ratio_min: Annotated[
366
+ Optional[float],
367
+ pydantic.Field(alias="peRatioMin"),
368
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
369
+ ] = None
370
+ r"""P/E ratio greater than or equal (inclusive)"""
371
+
372
+ pe_ratio_below: Annotated[
373
+ Optional[float],
374
+ pydantic.Field(alias="peRatioBelow"),
375
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
376
+ ] = None
377
+ r"""P/E ratio upper-bound filter. Returns companies below this valuation, excluding the value itself."""
378
+
379
+ pe_ratio_max: Annotated[
380
+ Optional[float],
381
+ pydantic.Field(alias="peRatioMax"),
382
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
383
+ ] = None
384
+ r"""P/E ratio less than or equal (inclusive)"""
385
+
386
+ pb_ratio: Annotated[
387
+ Optional[float],
388
+ pydantic.Field(alias="pbRatio"),
389
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
390
+ ] = None
391
+ r"""Exact price-to-book ratio filter. Use it when screening for one valuation value."""
392
+
393
+ pb_ratio_above: Annotated[
394
+ Optional[float],
395
+ pydantic.Field(alias="pbRatioAbove"),
396
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
397
+ ] = None
398
+ r"""P/B ratio lower-bound filter. Returns companies above this valuation, excluding the value itself."""
399
+
400
+ pb_ratio_min: Annotated[
401
+ Optional[float],
402
+ pydantic.Field(alias="pbRatioMin"),
403
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
404
+ ] = None
405
+ r"""P/B ratio greater than or equal (inclusive)"""
406
+
407
+ pb_ratio_below: Annotated[
408
+ Optional[float],
409
+ pydantic.Field(alias="pbRatioBelow"),
410
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
411
+ ] = None
412
+ r"""P/B ratio upper-bound filter. Returns companies below this valuation, excluding the value itself."""
413
+
414
+ pb_ratio_max: Annotated[
415
+ Optional[float],
416
+ pydantic.Field(alias="pbRatioMax"),
417
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
418
+ ] = None
419
+ r"""P/B ratio less than or equal (inclusive)"""
420
+
421
+ ps_ratio: Annotated[
422
+ Optional[float],
423
+ pydantic.Field(alias="psRatio"),
424
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
425
+ ] = None
426
+ r"""Exact price-to-sales ratio filter. Use it when screening for one valuation value."""
427
+
428
+ ps_ratio_above: Annotated[
429
+ Optional[float],
430
+ pydantic.Field(alias="psRatioAbove"),
431
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
432
+ ] = None
433
+ r"""P/S ratio lower-bound filter. Returns companies above this valuation, excluding the value itself."""
434
+
435
+ ps_ratio_min: Annotated[
436
+ Optional[float],
437
+ pydantic.Field(alias="psRatioMin"),
438
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
439
+ ] = None
440
+ r"""P/S ratio greater than or equal (inclusive)"""
441
+
442
+ ps_ratio_below: Annotated[
443
+ Optional[float],
444
+ pydantic.Field(alias="psRatioBelow"),
445
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
446
+ ] = None
447
+ r"""P/S ratio upper-bound filter. Returns companies below this valuation, excluding the value itself."""
448
+
449
+ ps_ratio_max: Annotated[
450
+ Optional[float],
451
+ pydantic.Field(alias="psRatioMax"),
452
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
453
+ ] = None
454
+ r"""P/S ratio less than or equal (inclusive)"""
455
+
456
+ pcf_ratio: Annotated[
457
+ Optional[float],
458
+ pydantic.Field(alias="pcfRatio"),
459
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
460
+ ] = None
461
+ r"""Exact price-to-cash-flow ratio filter. Use it when screening for one valuation value."""
462
+
463
+ pcf_ratio_above: Annotated[
464
+ Optional[float],
465
+ pydantic.Field(alias="pcfRatioAbove"),
466
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
467
+ ] = None
468
+ r"""P/CF ratio greater than (exclusive)"""
469
+
470
+ pcf_ratio_min: Annotated[
471
+ Optional[float],
472
+ pydantic.Field(alias="pcfRatioMin"),
473
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
474
+ ] = None
475
+ r"""P/CF ratio greater than or equal (inclusive)"""
476
+
477
+ pcf_ratio_below: Annotated[
478
+ Optional[float],
479
+ pydantic.Field(alias="pcfRatioBelow"),
480
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
481
+ ] = None
482
+ r"""P/CF ratio upper-bound filter. Returns companies below this valuation, excluding the value itself."""
483
+
484
+ pcf_ratio_max: Annotated[
485
+ Optional[float],
486
+ pydantic.Field(alias="pcfRatioMax"),
487
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
488
+ ] = None
489
+ r"""P/CF ratio less than or equal (inclusive)"""
490
+
491
+ limit: Annotated[
492
+ Optional[int],
493
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
494
+ ] = None
495
+ r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits."""
496
+
497
+ sort: Annotated[
498
+ Optional[str],
499
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
500
+ ] = None
501
+ 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."""
502
+
503
+ next: Annotated[
504
+ Optional[str],
505
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
506
+ ] = None
507
+ r"""Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page."""
508
+
509
+ @model_serializer(mode="wrap")
510
+ def serialize_model(self, handler):
511
+ optional_fields = set(
512
+ [
513
+ "ticker",
514
+ "tickersAnyOf",
515
+ "tickerAfter",
516
+ "tickerFrom",
517
+ "tickerBefore",
518
+ "tickerTo",
519
+ "cik",
520
+ "ciks",
521
+ "cikAfter",
522
+ "cikFrom",
523
+ "cikBefore",
524
+ "cikTo",
525
+ "price",
526
+ "priceAbove",
527
+ "priceMin",
528
+ "priceBelow",
529
+ "priceMax",
530
+ "averageVolume",
531
+ "averageVolumeAbove",
532
+ "averageVolumeMin",
533
+ "averageVolumeBelow",
534
+ "averageVolumeMax",
535
+ "marketCap",
536
+ "marketCapAbove",
537
+ "marketCapMin",
538
+ "marketCapBelow",
539
+ "marketCapMax",
540
+ "eps",
541
+ "epsAbove",
542
+ "epsMin",
543
+ "epsBelow",
544
+ "epsMax",
545
+ "peRatio",
546
+ "peRatioAbove",
547
+ "peRatioMin",
548
+ "peRatioBelow",
549
+ "peRatioMax",
550
+ "pbRatio",
551
+ "pbRatioAbove",
552
+ "pbRatioMin",
553
+ "pbRatioBelow",
554
+ "pbRatioMax",
555
+ "psRatio",
556
+ "psRatioAbove",
557
+ "psRatioMin",
558
+ "psRatioBelow",
559
+ "psRatioMax",
560
+ "pcfRatio",
561
+ "pcfRatioAbove",
562
+ "pcfRatioMin",
563
+ "pcfRatioBelow",
564
+ "pcfRatioMax",
565
+ "limit",
566
+ "sort",
567
+ "next",
568
+ ]
569
+ )
570
+ serialized = handler(self)
571
+ m = {}
572
+
573
+ for n, f in type(self).model_fields.items():
574
+ k = f.alias or n
575
+ val = serialized.get(k, serialized.get(n))
576
+
577
+ if val != UNSET_SENTINEL:
578
+ if val is not None or k not in optional_fields:
579
+ m[k] = val
580
+
581
+ return m
582
+
583
+
584
+ class GetFinancialRatiosResponseTypedDict(TypedDict):
585
+ http_meta: HTTPMetadataTypedDict
586
+ financial_ratios_response: NotRequired[FinancialRatiosResponseTypedDict]
587
+ r"""Successful response"""
588
+
589
+
590
+ class GetFinancialRatiosResponse(BaseModel):
591
+ next: Callable[[], Optional[GetFinancialRatiosResponse]]
592
+
593
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
594
+
595
+ financial_ratios_response: Optional[FinancialRatiosResponse] = None
596
+ r"""Successful response"""
597
+
598
+ @model_serializer(mode="wrap")
599
+ def serialize_model(self, handler):
600
+ optional_fields = set(["FinancialRatiosResponse"])
601
+ serialized = handler(self)
602
+ m = {}
603
+
604
+ for n, f in type(self).model_fields.items():
605
+ k = f.alias or n
606
+ val = serialized.get(k, serialized.get(n))
607
+
608
+ if val != UNSET_SENTINEL:
609
+ if val is not None or k not in optional_fields:
610
+ m[k] = val
611
+
612
+ return m