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,174 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 51a6a3cada37
3
+
4
+ from __future__ import annotations
5
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
6
+ from .stockaggregatesresponse import (
7
+ StockAggregatesResponse,
8
+ StockAggregatesResponseTypedDict,
9
+ )
10
+ from enum import Enum
11
+ from finance_dev import models, utils
12
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
13
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
14
+ import pydantic
15
+ from pydantic import field_serializer, model_serializer
16
+ from typing import Optional
17
+ from typing_extensions import Annotated, NotRequired, TypedDict
18
+
19
+
20
+ class Timespan(str, Enum, metaclass=utils.OpenEnumMeta):
21
+ r"""Time span unit for each aggregate bar, such as minute, hour, day, week, month, quarter, or year when supported."""
22
+
23
+ SECOND = "second"
24
+ MINUTE = "minute"
25
+ HOUR = "hour"
26
+ DAY = "day"
27
+ WEEK = "week"
28
+ MONTH = "month"
29
+ QUARTER = "quarter"
30
+ YEAR = "year"
31
+
32
+
33
+ class Sort(str, Enum, metaclass=utils.OpenEnumMeta):
34
+ r"""Sort direction for aggregate bars. Use `asc` for oldest first or `desc` for newest first."""
35
+
36
+ ASC = "asc"
37
+ DESC = "desc"
38
+
39
+
40
+ class GetStockAggregatesRequestTypedDict(TypedDict):
41
+ ticker: str
42
+ r"""Stock ticker symbol, such as AAPL. Use the exact ticker for the company you want to research."""
43
+ multiplier: int
44
+ r"""Size of each aggregate time window. Enter 1 or greater, such as 1 day or 5 minutes depending on `timespan`."""
45
+ timespan: Timespan
46
+ r"""Time span unit for each aggregate bar, such as minute, hour, day, week, month, quarter, or year when supported."""
47
+ from_: str
48
+ r"""Start date in YYYY-MM-DD format. Enter the first date to include in the research window. or timestamp"""
49
+ to: str
50
+ r"""End date in YYYY-MM-DD format. Enter the last date to include in the research window. or timestamp"""
51
+ adjusted: NotRequired[bool]
52
+ r"""Whether to adjust historical prices for stock splits. Use true for normalized charting and false for raw market data."""
53
+ sort: NotRequired[Sort]
54
+ r"""Sort direction for aggregate bars. Use `asc` for oldest first or `desc` for newest first."""
55
+ limit: NotRequired[int]
56
+ r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits."""
57
+ next: NotRequired[str]
58
+ r"""Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page."""
59
+
60
+
61
+ class GetStockAggregatesRequest(BaseModel):
62
+ ticker: Annotated[
63
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
64
+ ]
65
+ r"""Stock ticker symbol, such as AAPL. Use the exact ticker for the company you want to research."""
66
+
67
+ multiplier: Annotated[
68
+ int, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
69
+ ]
70
+ r"""Size of each aggregate time window. Enter 1 or greater, such as 1 day or 5 minutes depending on `timespan`."""
71
+
72
+ timespan: Annotated[
73
+ Timespan, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
74
+ ]
75
+ r"""Time span unit for each aggregate bar, such as minute, hour, day, week, month, quarter, or year when supported."""
76
+
77
+ from_: Annotated[
78
+ str,
79
+ pydantic.Field(alias="from"),
80
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
81
+ ]
82
+ r"""Start date in YYYY-MM-DD format. Enter the first date to include in the research window. or timestamp"""
83
+
84
+ to: Annotated[
85
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
86
+ ]
87
+ r"""End date in YYYY-MM-DD format. Enter the last date to include in the research window. or timestamp"""
88
+
89
+ adjusted: Annotated[
90
+ Optional[bool],
91
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
92
+ ] = None
93
+ r"""Whether to adjust historical prices for stock splits. Use true for normalized charting and false for raw market data."""
94
+
95
+ sort: Annotated[
96
+ Optional[Sort],
97
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
98
+ ] = None
99
+ r"""Sort direction for aggregate bars. Use `asc` for oldest first or `desc` for newest first."""
100
+
101
+ limit: Annotated[
102
+ Optional[int],
103
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
104
+ ] = None
105
+ r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits."""
106
+
107
+ next: Annotated[
108
+ Optional[str],
109
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
110
+ ] = None
111
+ r"""Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page."""
112
+
113
+ @field_serializer("timespan")
114
+ def serialize_timespan(self, value):
115
+ if isinstance(value, str):
116
+ try:
117
+ return models.Timespan(value)
118
+ except ValueError:
119
+ return value
120
+ return value
121
+
122
+ @field_serializer("sort")
123
+ def serialize_sort(self, value):
124
+ if isinstance(value, str):
125
+ try:
126
+ return models.Sort(value)
127
+ except ValueError:
128
+ return value
129
+ return value
130
+
131
+ @model_serializer(mode="wrap")
132
+ def serialize_model(self, handler):
133
+ optional_fields = set(["adjusted", "sort", "limit", "next"])
134
+ serialized = handler(self)
135
+ m = {}
136
+
137
+ for n, f in type(self).model_fields.items():
138
+ k = f.alias or n
139
+ val = serialized.get(k, serialized.get(n))
140
+
141
+ if val != UNSET_SENTINEL:
142
+ if val is not None or k not in optional_fields:
143
+ m[k] = val
144
+
145
+ return m
146
+
147
+
148
+ class GetStockAggregatesResponseTypedDict(TypedDict):
149
+ http_meta: HTTPMetadataTypedDict
150
+ stock_aggregates_response: NotRequired[StockAggregatesResponseTypedDict]
151
+ r"""Successful response"""
152
+
153
+
154
+ class GetStockAggregatesResponse(BaseModel):
155
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
156
+
157
+ stock_aggregates_response: Optional[StockAggregatesResponse] = None
158
+ r"""Successful response"""
159
+
160
+ @model_serializer(mode="wrap")
161
+ def serialize_model(self, handler):
162
+ optional_fields = set(["StockAggregatesResponse"])
163
+ serialized = handler(self)
164
+ m = {}
165
+
166
+ for n, f in type(self).model_fields.items():
167
+ k = f.alias or n
168
+ val = serialized.get(k, serialized.get(n))
169
+
170
+ if val != UNSET_SENTINEL:
171
+ if val is not None or k not in optional_fields:
172
+ m[k] = val
173
+
174
+ return m
@@ -0,0 +1,56 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: d9fb06474a64
3
+
4
+ from __future__ import annotations
5
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
6
+ from .stocklastquoteresponse import (
7
+ StockLastQuoteResponse,
8
+ StockLastQuoteResponseTypedDict,
9
+ )
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 Optional
15
+ from typing_extensions import Annotated, NotRequired, TypedDict
16
+
17
+
18
+ class GetStockLastQuoteRequestTypedDict(TypedDict):
19
+ ticker: str
20
+ r"""Stock ticker symbol, such as AAPL. Use the exact ticker for the company you want to research."""
21
+
22
+
23
+ class GetStockLastQuoteRequest(BaseModel):
24
+ ticker: Annotated[
25
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
26
+ ]
27
+ r"""Stock ticker symbol, such as AAPL. Use the exact ticker for the company you want to research."""
28
+
29
+
30
+ class GetStockLastQuoteResponseTypedDict(TypedDict):
31
+ http_meta: HTTPMetadataTypedDict
32
+ stock_last_quote_response: NotRequired[StockLastQuoteResponseTypedDict]
33
+ r"""Successful response"""
34
+
35
+
36
+ class GetStockLastQuoteResponse(BaseModel):
37
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
38
+
39
+ stock_last_quote_response: Optional[StockLastQuoteResponse] = None
40
+ r"""Successful response"""
41
+
42
+ @model_serializer(mode="wrap")
43
+ def serialize_model(self, handler):
44
+ optional_fields = set(["StockLastQuoteResponse"])
45
+ serialized = handler(self)
46
+ m = {}
47
+
48
+ for n, f in type(self).model_fields.items():
49
+ k = f.alias or n
50
+ val = serialized.get(k, serialized.get(n))
51
+
52
+ if val != UNSET_SENTINEL:
53
+ if val is not None or k not in optional_fields:
54
+ m[k] = val
55
+
56
+ return m
@@ -0,0 +1,56 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: fd851d7e1c2d
3
+
4
+ from __future__ import annotations
5
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
6
+ from .stocklasttraderesponse import (
7
+ StockLastTradeResponse,
8
+ StockLastTradeResponseTypedDict,
9
+ )
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 Optional
15
+ from typing_extensions import Annotated, NotRequired, TypedDict
16
+
17
+
18
+ class GetStockLastTradeRequestTypedDict(TypedDict):
19
+ ticker: str
20
+ r"""Stock ticker symbol, such as AAPL. Use the exact ticker for the company you want to research."""
21
+
22
+
23
+ class GetStockLastTradeRequest(BaseModel):
24
+ ticker: Annotated[
25
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
26
+ ]
27
+ r"""Stock ticker symbol, such as AAPL. Use the exact ticker for the company you want to research."""
28
+
29
+
30
+ class GetStockLastTradeResponseTypedDict(TypedDict):
31
+ http_meta: HTTPMetadataTypedDict
32
+ stock_last_trade_response: NotRequired[StockLastTradeResponseTypedDict]
33
+ r"""Successful response"""
34
+
35
+
36
+ class GetStockLastTradeResponse(BaseModel):
37
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
38
+
39
+ stock_last_trade_response: Optional[StockLastTradeResponse] = None
40
+ r"""Successful response"""
41
+
42
+ @model_serializer(mode="wrap")
43
+ def serialize_model(self, handler):
44
+ optional_fields = set(["StockLastTradeResponse"])
45
+ serialized = handler(self)
46
+ m = {}
47
+
48
+ for n, f in type(self).model_fields.items():
49
+ k = f.alias or n
50
+ val = serialized.get(k, serialized.get(n))
51
+
52
+ if val != UNSET_SENTINEL:
53
+ if val is not None or k not in optional_fields:
54
+ m[k] = val
55
+
56
+ return m
@@ -0,0 +1,90 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 46264f35cf81
3
+
4
+ from __future__ import annotations
5
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
6
+ from .stockopencloseresponse import (
7
+ StockOpenCloseResponse,
8
+ StockOpenCloseResponseTypedDict,
9
+ )
10
+ from datetime import date
11
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
12
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
13
+ import pydantic
14
+ from pydantic import model_serializer
15
+ from typing import Optional
16
+ from typing_extensions import Annotated, NotRequired, TypedDict
17
+
18
+
19
+ class GetStockOpenCloseRequestTypedDict(TypedDict):
20
+ ticker: str
21
+ r"""Stock ticker symbol, such as AAPL. Use the exact ticker for the company you want to research."""
22
+ date_: date
23
+ r"""Date in YYYY-MM-DD format. Enter the specific calendar date you want to query."""
24
+ adjusted: NotRequired[bool]
25
+ r"""Whether to adjust historical prices for stock splits. Use true for normalized charting and false for raw market data."""
26
+
27
+
28
+ class GetStockOpenCloseRequest(BaseModel):
29
+ ticker: Annotated[
30
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
31
+ ]
32
+ r"""Stock ticker symbol, such as AAPL. Use the exact ticker for the company you want to research."""
33
+
34
+ date_: Annotated[
35
+ date,
36
+ pydantic.Field(alias="date"),
37
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
38
+ ]
39
+ r"""Date in YYYY-MM-DD format. Enter the specific calendar date you want to query."""
40
+
41
+ adjusted: Annotated[
42
+ Optional[bool],
43
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
44
+ ] = None
45
+ r"""Whether to adjust historical prices for stock splits. Use true for normalized charting and false for raw market data."""
46
+
47
+ @model_serializer(mode="wrap")
48
+ def serialize_model(self, handler):
49
+ optional_fields = set(["adjusted"])
50
+ serialized = handler(self)
51
+ m = {}
52
+
53
+ for n, f in type(self).model_fields.items():
54
+ k = f.alias or n
55
+ val = serialized.get(k, serialized.get(n))
56
+
57
+ if val != UNSET_SENTINEL:
58
+ if val is not None or k not in optional_fields:
59
+ m[k] = val
60
+
61
+ return m
62
+
63
+
64
+ class GetStockOpenCloseResponseTypedDict(TypedDict):
65
+ http_meta: HTTPMetadataTypedDict
66
+ stock_open_close_response: NotRequired[StockOpenCloseResponseTypedDict]
67
+ r"""Successful response"""
68
+
69
+
70
+ class GetStockOpenCloseResponse(BaseModel):
71
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
72
+
73
+ stock_open_close_response: Optional[StockOpenCloseResponse] = None
74
+ r"""Successful response"""
75
+
76
+ @model_serializer(mode="wrap")
77
+ def serialize_model(self, handler):
78
+ optional_fields = set(["StockOpenCloseResponse"])
79
+ serialized = handler(self)
80
+ m = {}
81
+
82
+ for n, f in type(self).model_fields.items():
83
+ k = f.alias or n
84
+ val = serialized.get(k, serialized.get(n))
85
+
86
+ if val != UNSET_SENTINEL:
87
+ if val is not None or k not in optional_fields:
88
+ m[k] = val
89
+
90
+ return m
@@ -0,0 +1,80 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: b9a2bb736665
3
+
4
+ from __future__ import annotations
5
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
6
+ from .stockpreviousdayresponse import (
7
+ StockPreviousDayResponse,
8
+ StockPreviousDayResponseTypedDict,
9
+ )
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 Optional
15
+ from typing_extensions import Annotated, NotRequired, TypedDict
16
+
17
+
18
+ class GetStockPreviousDayRequestTypedDict(TypedDict):
19
+ ticker: str
20
+ r"""Stock ticker symbol, such as AAPL. Use the exact ticker for the company you want to research."""
21
+ adjusted: NotRequired[bool]
22
+ r"""Whether to adjust historical prices for stock splits. Use true for normalized charting and false for raw market data."""
23
+
24
+
25
+ class GetStockPreviousDayRequest(BaseModel):
26
+ ticker: Annotated[
27
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
28
+ ]
29
+ r"""Stock ticker symbol, such as AAPL. Use the exact ticker for the company you want to research."""
30
+
31
+ adjusted: Annotated[
32
+ Optional[bool],
33
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
34
+ ] = None
35
+ r"""Whether to adjust historical prices for stock splits. Use true for normalized charting and false for raw market data."""
36
+
37
+ @model_serializer(mode="wrap")
38
+ def serialize_model(self, handler):
39
+ optional_fields = set(["adjusted"])
40
+ serialized = handler(self)
41
+ m = {}
42
+
43
+ for n, f in type(self).model_fields.items():
44
+ k = f.alias or n
45
+ val = serialized.get(k, serialized.get(n))
46
+
47
+ if val != UNSET_SENTINEL:
48
+ if val is not None or k not in optional_fields:
49
+ m[k] = val
50
+
51
+ return m
52
+
53
+
54
+ class GetStockPreviousDayResponseTypedDict(TypedDict):
55
+ http_meta: HTTPMetadataTypedDict
56
+ stock_previous_day_response: NotRequired[StockPreviousDayResponseTypedDict]
57
+ r"""Successful response"""
58
+
59
+
60
+ class GetStockPreviousDayResponse(BaseModel):
61
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
62
+
63
+ stock_previous_day_response: Optional[StockPreviousDayResponse] = None
64
+ r"""Successful response"""
65
+
66
+ @model_serializer(mode="wrap")
67
+ def serialize_model(self, handler):
68
+ optional_fields = set(["StockPreviousDayResponse"])
69
+ serialized = handler(self)
70
+ m = {}
71
+
72
+ for n, f in type(self).model_fields.items():
73
+ k = f.alias or n
74
+ val = serialized.get(k, serialized.get(n))
75
+
76
+ if val != UNSET_SENTINEL:
77
+ if val is not None or k not in optional_fields:
78
+ m[k] = val
79
+
80
+ return m
@@ -0,0 +1,177 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 12374d588539
3
+
4
+ from __future__ import annotations
5
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
6
+ from .stockquotesresponse import StockQuotesResponse, StockQuotesResponseTypedDict
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 Callable, Optional
14
+ from typing_extensions import Annotated, NotRequired, TypedDict
15
+
16
+
17
+ class GetStockQuotesOrder(str, Enum, metaclass=utils.OpenEnumMeta):
18
+ r"""Sort order for returned records. Use asc for oldest first or desc for newest first when supported."""
19
+
20
+ ASC = "asc"
21
+ DESC = "desc"
22
+
23
+
24
+ class GetStockQuotesRequestTypedDict(TypedDict):
25
+ ticker: str
26
+ r"""Stock ticker symbol, such as AAPL. Use the exact ticker for the company you want to research."""
27
+ timestamp: NotRequired[str]
28
+ r"""Query by timestamp (YYYY-MM-DD or nanoseconds)"""
29
+ timestamp_from: NotRequired[str]
30
+ r"""Timestamp start filter. Returns records at or after this timestamp."""
31
+ timestamp_after: NotRequired[str]
32
+ r"""Timestamp lower-bound filter. Returns records after this timestamp, excluding the timestamp itself."""
33
+ timestamp_to: NotRequired[str]
34
+ r"""Timestamp end filter. Returns records at or before this timestamp."""
35
+ timestamp_before: NotRequired[str]
36
+ r"""Timestamp upper-bound filter. Returns records before this timestamp, excluding the timestamp itself."""
37
+ order: NotRequired[GetStockQuotesOrder]
38
+ r"""Sort order for returned records. Use asc for oldest first or desc for newest first when supported."""
39
+ limit: NotRequired[int]
40
+ r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits."""
41
+ sort: NotRequired[str]
42
+ r"""Sort field used for ordering. Massive documents this separately from `order`, so enter the provider-supported field name in the text box, for example `timestamp`."""
43
+ next: NotRequired[str]
44
+ r"""Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page."""
45
+
46
+
47
+ class GetStockQuotesRequest(BaseModel):
48
+ ticker: Annotated[
49
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
50
+ ]
51
+ r"""Stock ticker symbol, such as AAPL. Use the exact ticker for the company you want to research."""
52
+
53
+ timestamp: Annotated[
54
+ Optional[str],
55
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
56
+ ] = None
57
+ r"""Query by timestamp (YYYY-MM-DD or nanoseconds)"""
58
+
59
+ timestamp_from: Annotated[
60
+ Optional[str],
61
+ pydantic.Field(alias="timestampFrom"),
62
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
63
+ ] = None
64
+ r"""Timestamp start filter. Returns records at or after this timestamp."""
65
+
66
+ timestamp_after: Annotated[
67
+ Optional[str],
68
+ pydantic.Field(alias="timestampAfter"),
69
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
70
+ ] = None
71
+ r"""Timestamp lower-bound filter. Returns records after this timestamp, excluding the timestamp itself."""
72
+
73
+ timestamp_to: Annotated[
74
+ Optional[str],
75
+ pydantic.Field(alias="timestampTo"),
76
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
77
+ ] = None
78
+ r"""Timestamp end filter. Returns records at or before this timestamp."""
79
+
80
+ timestamp_before: Annotated[
81
+ Optional[str],
82
+ pydantic.Field(alias="timestampBefore"),
83
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
84
+ ] = None
85
+ r"""Timestamp upper-bound filter. Returns records before this timestamp, excluding the timestamp itself."""
86
+
87
+ order: Annotated[
88
+ Optional[GetStockQuotesOrder],
89
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
90
+ ] = GetStockQuotesOrder.DESC
91
+ r"""Sort order for returned records. Use asc for oldest first or desc for newest first when supported."""
92
+
93
+ limit: Annotated[
94
+ Optional[int],
95
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
96
+ ] = None
97
+ r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits."""
98
+
99
+ sort: Annotated[
100
+ Optional[str],
101
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
102
+ ] = None
103
+ r"""Sort field used for ordering. Massive documents this separately from `order`, so enter the provider-supported field name in the text box, for example `timestamp`."""
104
+
105
+ next: Annotated[
106
+ Optional[str],
107
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
108
+ ] = None
109
+ r"""Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page."""
110
+
111
+ @field_serializer("order")
112
+ def serialize_order(self, value):
113
+ if isinstance(value, str):
114
+ try:
115
+ return models.GetStockQuotesOrder(value)
116
+ except ValueError:
117
+ return value
118
+ return value
119
+
120
+ @model_serializer(mode="wrap")
121
+ def serialize_model(self, handler):
122
+ optional_fields = set(
123
+ [
124
+ "timestamp",
125
+ "timestampFrom",
126
+ "timestampAfter",
127
+ "timestampTo",
128
+ "timestampBefore",
129
+ "order",
130
+ "limit",
131
+ "sort",
132
+ "next",
133
+ ]
134
+ )
135
+ serialized = handler(self)
136
+ m = {}
137
+
138
+ for n, f in type(self).model_fields.items():
139
+ k = f.alias or n
140
+ val = serialized.get(k, serialized.get(n))
141
+
142
+ if val != UNSET_SENTINEL:
143
+ if val is not None or k not in optional_fields:
144
+ m[k] = val
145
+
146
+ return m
147
+
148
+
149
+ class GetStockQuotesResponseTypedDict(TypedDict):
150
+ http_meta: HTTPMetadataTypedDict
151
+ stock_quotes_response: NotRequired[StockQuotesResponseTypedDict]
152
+ r"""Successful response"""
153
+
154
+
155
+ class GetStockQuotesResponse(BaseModel):
156
+ next: Callable[[], Optional[GetStockQuotesResponse]]
157
+
158
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
159
+
160
+ stock_quotes_response: Optional[StockQuotesResponse] = None
161
+ r"""Successful response"""
162
+
163
+ @model_serializer(mode="wrap")
164
+ def serialize_model(self, handler):
165
+ optional_fields = set(["StockQuotesResponse"])
166
+ serialized = handler(self)
167
+ m = {}
168
+
169
+ for n, f in type(self).model_fields.items():
170
+ k = f.alias or n
171
+ val = serialized.get(k, serialized.get(n))
172
+
173
+ if val != UNSET_SENTINEL:
174
+ if val is not None or k not in optional_fields:
175
+ m[k] = val
176
+
177
+ return m