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,131 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: d1edab16d9c3
3
+
4
+ from __future__ import annotations
5
+ from datetime import date
6
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
7
+ import pydantic
8
+ from pydantic import model_serializer
9
+ from typing import List, Optional
10
+ from typing_extensions import Annotated, NotRequired, TypedDict
11
+
12
+
13
+ class CallTypedDict(TypedDict):
14
+ strike_price: NotRequired[float]
15
+ r"""Strike price"""
16
+ symbol: NotRequired[str]
17
+ r"""OCC option ticker symbol"""
18
+
19
+
20
+ class Call(BaseModel):
21
+ strike_price: Annotated[Optional[float], pydantic.Field(alias="strikePrice")] = None
22
+ r"""Strike price"""
23
+
24
+ symbol: Optional[str] = None
25
+ r"""OCC option ticker symbol"""
26
+
27
+ @model_serializer(mode="wrap")
28
+ def serialize_model(self, handler):
29
+ optional_fields = set(["strikePrice", "symbol"])
30
+ serialized = handler(self)
31
+ m = {}
32
+
33
+ for n, f in type(self).model_fields.items():
34
+ k = f.alias or n
35
+ val = serialized.get(k, serialized.get(n))
36
+
37
+ if val != UNSET_SENTINEL:
38
+ if val is not None or k not in optional_fields:
39
+ m[k] = val
40
+
41
+ return m
42
+
43
+
44
+ class PutTypedDict(TypedDict):
45
+ strike_price: NotRequired[float]
46
+ r"""Strike price"""
47
+ symbol: NotRequired[str]
48
+ r"""OCC option ticker symbol"""
49
+
50
+
51
+ class Put(BaseModel):
52
+ strike_price: Annotated[Optional[float], pydantic.Field(alias="strikePrice")] = None
53
+ r"""Strike price"""
54
+
55
+ symbol: Optional[str] = None
56
+ r"""OCC option ticker symbol"""
57
+
58
+ @model_serializer(mode="wrap")
59
+ def serialize_model(self, handler):
60
+ optional_fields = set(["strikePrice", "symbol"])
61
+ serialized = handler(self)
62
+ m = {}
63
+
64
+ for n, f in type(self).model_fields.items():
65
+ k = f.alias or n
66
+ val = serialized.get(k, serialized.get(n))
67
+
68
+ if val != UNSET_SENTINEL:
69
+ if val is not None or k not in optional_fields:
70
+ m[k] = val
71
+
72
+ return m
73
+
74
+
75
+ class OptionContractsResponseTypedDict(TypedDict):
76
+ r"""Response containing the call and put option contracts for an underlying symbol and expiration date."""
77
+
78
+ calls: NotRequired[List[CallTypedDict]]
79
+ r"""Call option contracts for the expiration date"""
80
+ expiry_date: NotRequired[date]
81
+ r"""Expiration date YYYY-MM-DD"""
82
+ puts: NotRequired[List[PutTypedDict]]
83
+ r"""Put option contracts for the expiration date"""
84
+ symbol: NotRequired[str]
85
+ r"""Underlying symbol"""
86
+
87
+
88
+ class OptionContractsResponse(BaseModel):
89
+ r"""Response containing the call and put option contracts for an underlying symbol and expiration date."""
90
+
91
+ calls: Optional[List[Call]] = None
92
+ r"""Call option contracts for the expiration date"""
93
+
94
+ expiry_date: Annotated[Optional[date], pydantic.Field(alias="expiryDate")] = None
95
+ r"""Expiration date YYYY-MM-DD"""
96
+
97
+ puts: Optional[List[Put]] = None
98
+ r"""Put option contracts for the expiration date"""
99
+
100
+ symbol: Optional[str] = None
101
+ r"""Underlying symbol"""
102
+
103
+ @model_serializer(mode="wrap")
104
+ def serialize_model(self, handler):
105
+ optional_fields = set(["calls", "expiryDate", "puts", "symbol"])
106
+ serialized = handler(self)
107
+ m = {}
108
+
109
+ for n, f in type(self).model_fields.items():
110
+ k = f.alias or n
111
+ val = serialized.get(k, serialized.get(n))
112
+
113
+ if val != UNSET_SENTINEL:
114
+ if val is not None or k not in optional_fields:
115
+ m[k] = val
116
+
117
+ return m
118
+
119
+
120
+ try:
121
+ Call.model_rebuild()
122
+ except NameError:
123
+ pass
124
+ try:
125
+ Put.model_rebuild()
126
+ except NameError:
127
+ pass
128
+ try:
129
+ OptionContractsResponse.model_rebuild()
130
+ except NameError:
131
+ pass
@@ -0,0 +1,72 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 2660a2f8936f
3
+
4
+ from __future__ import annotations
5
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
6
+ import pydantic
7
+ from pydantic import model_serializer
8
+ from typing import Optional
9
+ from typing_extensions import Annotated, NotRequired, TypedDict
10
+
11
+
12
+ class OptionDetailsDTOTypedDict(TypedDict):
13
+ r"""One option contract's pricing snapshot from GET /v1/marketdata/options/details. Numeric prices are returned as JSON numbers."""
14
+
15
+ ask_price: NotRequired[float]
16
+ r"""Current best ask price."""
17
+ bid_price: NotRequired[float]
18
+ r"""Current best bid price."""
19
+ close_price: NotRequired[float]
20
+ r"""Previous session's closing price."""
21
+ last_price: NotRequired[float]
22
+ r"""Last traded price for the contract."""
23
+ mid_price: NotRequired[float]
24
+ r"""Midpoint between the bid and ask prices."""
25
+ symbol: NotRequired[str]
26
+ r"""OSI option symbol for the contract."""
27
+
28
+
29
+ class OptionDetailsDTO(BaseModel):
30
+ r"""One option contract's pricing snapshot from GET /v1/marketdata/options/details. Numeric prices are returned as JSON numbers."""
31
+
32
+ ask_price: Annotated[Optional[float], pydantic.Field(alias="askPrice")] = None
33
+ r"""Current best ask price."""
34
+
35
+ bid_price: Annotated[Optional[float], pydantic.Field(alias="bidPrice")] = None
36
+ r"""Current best bid price."""
37
+
38
+ close_price: Annotated[Optional[float], pydantic.Field(alias="closePrice")] = None
39
+ r"""Previous session's closing price."""
40
+
41
+ last_price: Annotated[Optional[float], pydantic.Field(alias="lastPrice")] = None
42
+ r"""Last traded price for the contract."""
43
+
44
+ mid_price: Annotated[Optional[float], pydantic.Field(alias="midPrice")] = None
45
+ r"""Midpoint between the bid and ask prices."""
46
+
47
+ symbol: Optional[str] = None
48
+ r"""OSI option symbol for the contract."""
49
+
50
+ @model_serializer(mode="wrap")
51
+ def serialize_model(self, handler):
52
+ optional_fields = set(
53
+ ["askPrice", "bidPrice", "closePrice", "lastPrice", "midPrice", "symbol"]
54
+ )
55
+ serialized = handler(self)
56
+ m = {}
57
+
58
+ for n, f in type(self).model_fields.items():
59
+ k = f.alias or n
60
+ val = serialized.get(k, serialized.get(n))
61
+
62
+ if val != UNSET_SENTINEL:
63
+ if val is not None or k not in optional_fields:
64
+ m[k] = val
65
+
66
+ return m
67
+
68
+
69
+ try:
70
+ OptionDetailsDTO.model_rebuild()
71
+ except NameError:
72
+ pass
@@ -0,0 +1,53 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 5fee5b681dfb
3
+
4
+ from __future__ import annotations
5
+ from datetime import date
6
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
7
+ import pydantic
8
+ from pydantic import model_serializer
9
+ from typing import List, Optional
10
+ from typing_extensions import Annotated, NotRequired, TypedDict
11
+
12
+
13
+ class OptionExpiryDatesResponseTypedDict(TypedDict):
14
+ r"""Response containing the option expiration dates for an underlying symbol."""
15
+
16
+ expiry_dates: NotRequired[List[date]]
17
+ r"""List of expiration dates in YYYY-MM-DD format"""
18
+ symbol: NotRequired[str]
19
+ r"""Underlying symbol"""
20
+
21
+
22
+ class OptionExpiryDatesResponse(BaseModel):
23
+ r"""Response containing the option expiration dates for an underlying symbol."""
24
+
25
+ expiry_dates: Annotated[
26
+ Optional[List[date]], pydantic.Field(alias="expiryDates")
27
+ ] = None
28
+ r"""List of expiration dates in YYYY-MM-DD format"""
29
+
30
+ symbol: Optional[str] = None
31
+ r"""Underlying symbol"""
32
+
33
+ @model_serializer(mode="wrap")
34
+ def serialize_model(self, handler):
35
+ optional_fields = set(["expiryDates", "symbol"])
36
+ serialized = handler(self)
37
+ m = {}
38
+
39
+ for n, f in type(self).model_fields.items():
40
+ k = f.alias or n
41
+ val = serialized.get(k, serialized.get(n))
42
+
43
+ if val != UNSET_SENTINEL:
44
+ if val is not None or k not in optional_fields:
45
+ m[k] = val
46
+
47
+ return m
48
+
49
+
50
+ try:
51
+ OptionExpiryDatesResponse.model_rebuild()
52
+ except NameError:
53
+ pass
@@ -0,0 +1,169 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 48276e4f7bf1
3
+
4
+ from __future__ import annotations
5
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
6
+ import pydantic
7
+ from pydantic import model_serializer
8
+ from typing import List, Optional
9
+ from typing_extensions import Annotated, NotRequired, TypedDict
10
+
11
+
12
+ class OptionLastTradeResponseResultsTypedDict(TypedDict):
13
+ r"""Last options trade object"""
14
+
15
+ conditions: NotRequired[List[int]]
16
+ r"""Trade conditions"""
17
+ correction: NotRequired[int]
18
+ r"""Correction indicator"""
19
+ exchange: NotRequired[int]
20
+ r"""Numeric exchange identifier supplied by the market data provider."""
21
+ id: NotRequired[str]
22
+ r"""Trade ID"""
23
+ participant_timestamp: NotRequired[int]
24
+ r"""Participant timestamp"""
25
+ price: NotRequired[float]
26
+ r"""Trade price"""
27
+ sequence_number: NotRequired[int]
28
+ r"""Sequence number"""
29
+ sip_timestamp: NotRequired[int]
30
+ r"""SIP timestamp"""
31
+ size: NotRequired[float]
32
+ r"""Trade size (contracts)"""
33
+ tape: NotRequired[int]
34
+ r"""Tape"""
35
+ ticker: NotRequired[str]
36
+ r"""Options contract ticker symbol. Enter the exact option symbol returned by option search or chain endpoints."""
37
+ trf_id: NotRequired[int]
38
+ r"""TRF ID"""
39
+ trf_timestamp: NotRequired[int]
40
+ r"""TRF timestamp"""
41
+
42
+
43
+ class OptionLastTradeResponseResults(BaseModel):
44
+ r"""Last options trade object"""
45
+
46
+ conditions: Optional[List[int]] = None
47
+ r"""Trade conditions"""
48
+
49
+ correction: Optional[int] = None
50
+ r"""Correction indicator"""
51
+
52
+ exchange: Optional[int] = None
53
+ r"""Numeric exchange identifier supplied by the market data provider."""
54
+
55
+ id: Optional[str] = None
56
+ r"""Trade ID"""
57
+
58
+ participant_timestamp: Annotated[
59
+ Optional[int], pydantic.Field(alias="participantTimestamp")
60
+ ] = None
61
+ r"""Participant timestamp"""
62
+
63
+ price: Optional[float] = None
64
+ r"""Trade price"""
65
+
66
+ sequence_number: Annotated[
67
+ Optional[int], pydantic.Field(alias="sequenceNumber")
68
+ ] = None
69
+ r"""Sequence number"""
70
+
71
+ sip_timestamp: Annotated[Optional[int], pydantic.Field(alias="sipTimestamp")] = None
72
+ r"""SIP timestamp"""
73
+
74
+ size: Optional[float] = None
75
+ r"""Trade size (contracts)"""
76
+
77
+ tape: Optional[int] = None
78
+ r"""Tape"""
79
+
80
+ ticker: Optional[str] = None
81
+ r"""Options contract ticker symbol. Enter the exact option symbol returned by option search or chain endpoints."""
82
+
83
+ trf_id: Annotated[Optional[int], pydantic.Field(alias="trfId")] = None
84
+ r"""TRF ID"""
85
+
86
+ trf_timestamp: Annotated[Optional[int], pydantic.Field(alias="trfTimestamp")] = None
87
+ r"""TRF timestamp"""
88
+
89
+ @model_serializer(mode="wrap")
90
+ def serialize_model(self, handler):
91
+ optional_fields = set(
92
+ [
93
+ "conditions",
94
+ "correction",
95
+ "exchange",
96
+ "id",
97
+ "participantTimestamp",
98
+ "price",
99
+ "sequenceNumber",
100
+ "sipTimestamp",
101
+ "size",
102
+ "tape",
103
+ "ticker",
104
+ "trfId",
105
+ "trfTimestamp",
106
+ ]
107
+ )
108
+ serialized = handler(self)
109
+ m = {}
110
+
111
+ for n, f in type(self).model_fields.items():
112
+ k = f.alias or n
113
+ val = serialized.get(k, serialized.get(n))
114
+
115
+ if val != UNSET_SENTINEL:
116
+ if val is not None or k not in optional_fields:
117
+ m[k] = val
118
+
119
+ return m
120
+
121
+
122
+ class OptionLastTradeResponseTypedDict(TypedDict):
123
+ r"""Most recent trade for an options contract."""
124
+
125
+ request_id: NotRequired[str]
126
+ r"""Unique request ID"""
127
+ results: NotRequired[OptionLastTradeResponseResultsTypedDict]
128
+ r"""Last options trade object"""
129
+ status: NotRequired[str]
130
+ r"""Status string from the upstream data provider — typically `OK` for a successful response. Treat any other value as an error indicator alongside the HTTP status code."""
131
+
132
+
133
+ class OptionLastTradeResponse(BaseModel):
134
+ r"""Most recent trade for an options contract."""
135
+
136
+ request_id: Annotated[Optional[str], pydantic.Field(alias="requestId")] = None
137
+ r"""Unique request ID"""
138
+
139
+ results: Optional[OptionLastTradeResponseResults] = None
140
+ r"""Last options trade object"""
141
+
142
+ status: Optional[str] = None
143
+ r"""Status string from the upstream data provider — typically `OK` for a successful response. Treat any other value as an error indicator alongside the HTTP status code."""
144
+
145
+ @model_serializer(mode="wrap")
146
+ def serialize_model(self, handler):
147
+ optional_fields = set(["requestId", "results", "status"])
148
+ serialized = handler(self)
149
+ m = {}
150
+
151
+ for n, f in type(self).model_fields.items():
152
+ k = f.alias or n
153
+ val = serialized.get(k, serialized.get(n))
154
+
155
+ if val != UNSET_SENTINEL:
156
+ if val is not None or k not in optional_fields:
157
+ m[k] = val
158
+
159
+ return m
160
+
161
+
162
+ try:
163
+ OptionLastTradeResponseResults.model_rebuild()
164
+ except NameError:
165
+ pass
166
+ try:
167
+ OptionLastTradeResponse.model_rebuild()
168
+ except NameError:
169
+ pass
@@ -0,0 +1,97 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 7df7aed2b328
3
+
4
+ from __future__ import annotations
5
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
6
+ import pydantic
7
+ from pydantic import model_serializer
8
+ from typing import Optional
9
+ from typing_extensions import Annotated, NotRequired, TypedDict
10
+
11
+
12
+ class OptionOpenCloseResponseTypedDict(TypedDict):
13
+ r"""Daily open, high, low, close and volume for an option contract on a given date, including pre-market and after-hours prices."""
14
+
15
+ after_hours: NotRequired[float]
16
+ r"""Last traded price in after-hours session"""
17
+ close: NotRequired[float]
18
+ r"""Closing price for the trading session"""
19
+ date_: NotRequired[str]
20
+ r"""Trade date in YYYY-MM-DD format"""
21
+ high: NotRequired[float]
22
+ r"""Highest price reached during the trading session"""
23
+ low: NotRequired[float]
24
+ r"""Lowest price reached during the trading session"""
25
+ open: NotRequired[float]
26
+ r"""Opening price for the trading session"""
27
+ pre_market: NotRequired[float]
28
+ r"""Last traded price in pre-market session"""
29
+ ticker: NotRequired[str]
30
+ r"""OCC option ticker symbol"""
31
+ volume: NotRequired[float]
32
+ r"""Total number of contracts traded during the session"""
33
+
34
+
35
+ class OptionOpenCloseResponse(BaseModel):
36
+ r"""Daily open, high, low, close and volume for an option contract on a given date, including pre-market and after-hours prices."""
37
+
38
+ after_hours: Annotated[Optional[float], pydantic.Field(alias="afterHours")] = None
39
+ r"""Last traded price in after-hours session"""
40
+
41
+ close: Optional[float] = None
42
+ r"""Closing price for the trading session"""
43
+
44
+ date_: Annotated[Optional[str], pydantic.Field(alias="date")] = None
45
+ r"""Trade date in YYYY-MM-DD format"""
46
+
47
+ high: Optional[float] = None
48
+ r"""Highest price reached during the trading session"""
49
+
50
+ low: Optional[float] = None
51
+ r"""Lowest price reached during the trading session"""
52
+
53
+ open: Optional[float] = None
54
+ r"""Opening price for the trading session"""
55
+
56
+ pre_market: Annotated[Optional[float], pydantic.Field(alias="preMarket")] = None
57
+ r"""Last traded price in pre-market session"""
58
+
59
+ ticker: Optional[str] = None
60
+ r"""OCC option ticker symbol"""
61
+
62
+ volume: Optional[float] = None
63
+ r"""Total number of contracts traded during the session"""
64
+
65
+ @model_serializer(mode="wrap")
66
+ def serialize_model(self, handler):
67
+ optional_fields = set(
68
+ [
69
+ "afterHours",
70
+ "close",
71
+ "date",
72
+ "high",
73
+ "low",
74
+ "open",
75
+ "preMarket",
76
+ "ticker",
77
+ "volume",
78
+ ]
79
+ )
80
+ serialized = handler(self)
81
+ m = {}
82
+
83
+ for n, f in type(self).model_fields.items():
84
+ k = f.alias or n
85
+ val = serialized.get(k, serialized.get(n))
86
+
87
+ if val != UNSET_SENTINEL:
88
+ if val is not None or k not in optional_fields:
89
+ m[k] = val
90
+
91
+ return m
92
+
93
+
94
+ try:
95
+ OptionOpenCloseResponse.model_rebuild()
96
+ except NameError:
97
+ pass
@@ -0,0 +1,89 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 7504755158c1
3
+
4
+ from __future__ import annotations
5
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
6
+ import pydantic
7
+ from pydantic import model_serializer
8
+ from typing import Optional
9
+ from typing_extensions import Annotated, NotRequired, TypedDict
10
+
11
+
12
+ class OptionPreviousDayResponseTypedDict(TypedDict):
13
+ r"""Previous trading session OHLC bar for an option contract."""
14
+
15
+ close: float
16
+ r"""Closing trade price of the contract at the end of the previous regular trading session, in U.S. dollars per contract."""
17
+ high: float
18
+ r"""Highest trade price reached during the previous regular trading session, in U.S. dollars per contract."""
19
+ low: float
20
+ r"""Lowest trade price reached during the previous regular trading session, in U.S. dollars per contract."""
21
+ open: float
22
+ r"""Opening trade price of the contract during the previous regular trading session, in U.S. dollars per contract."""
23
+ ticker: str
24
+ r"""Canonical OCC/OSI option symbol the data is for (always returned in uppercase, without the `O:` prefix even if you sent one)."""
25
+ volume: float
26
+ r"""Total number of contracts that traded during the previous regular trading session. Higher volume usually means tighter bid/ask spreads and easier fills."""
27
+ timestamp: NotRequired[int]
28
+ r"""When the bar applies to, as a Unix timestamp in **milliseconds** (UTC). Omitted if the upstream source did not provide it."""
29
+ transaction_count: NotRequired[int]
30
+ r"""Number of individual trade prints that made up the previous session's bar. (Each transaction can be many contracts — see `volume` for total contract count.) Omitted if the upstream source did not provide it."""
31
+ volume_weighted: NotRequired[float]
32
+ r"""Volume-Weighted Average Price (VWAP) for the previous session — the average trade price weighted by contract size. Useful as a 'fair' reference price for the day. Omitted if the upstream source did not provide it."""
33
+
34
+
35
+ class OptionPreviousDayResponse(BaseModel):
36
+ r"""Previous trading session OHLC bar for an option contract."""
37
+
38
+ close: float
39
+ r"""Closing trade price of the contract at the end of the previous regular trading session, in U.S. dollars per contract."""
40
+
41
+ high: float
42
+ r"""Highest trade price reached during the previous regular trading session, in U.S. dollars per contract."""
43
+
44
+ low: float
45
+ r"""Lowest trade price reached during the previous regular trading session, in U.S. dollars per contract."""
46
+
47
+ open: float
48
+ r"""Opening trade price of the contract during the previous regular trading session, in U.S. dollars per contract."""
49
+
50
+ ticker: str
51
+ r"""Canonical OCC/OSI option symbol the data is for (always returned in uppercase, without the `O:` prefix even if you sent one)."""
52
+
53
+ volume: float
54
+ r"""Total number of contracts that traded during the previous regular trading session. Higher volume usually means tighter bid/ask spreads and easier fills."""
55
+
56
+ timestamp: Optional[int] = None
57
+ r"""When the bar applies to, as a Unix timestamp in **milliseconds** (UTC). Omitted if the upstream source did not provide it."""
58
+
59
+ transaction_count: Annotated[
60
+ Optional[int], pydantic.Field(alias="transactionCount")
61
+ ] = None
62
+ r"""Number of individual trade prints that made up the previous session's bar. (Each transaction can be many contracts — see `volume` for total contract count.) Omitted if the upstream source did not provide it."""
63
+
64
+ volume_weighted: Annotated[
65
+ Optional[float], pydantic.Field(alias="volumeWeighted")
66
+ ] = None
67
+ r"""Volume-Weighted Average Price (VWAP) for the previous session — the average trade price weighted by contract size. Useful as a 'fair' reference price for the day. Omitted if the upstream source did not provide it."""
68
+
69
+ @model_serializer(mode="wrap")
70
+ def serialize_model(self, handler):
71
+ optional_fields = set(["timestamp", "transactionCount", "volumeWeighted"])
72
+ serialized = handler(self)
73
+ m = {}
74
+
75
+ for n, f in type(self).model_fields.items():
76
+ k = f.alias or n
77
+ val = serialized.get(k, serialized.get(n))
78
+
79
+ if val != UNSET_SENTINEL:
80
+ if val is not None or k not in optional_fields:
81
+ m[k] = val
82
+
83
+ return m
84
+
85
+
86
+ try:
87
+ OptionPreviousDayResponse.model_rebuild()
88
+ except NameError:
89
+ pass