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,138 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 5792c27d8c12
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 OptionQuotesResponseResultTypedDict(TypedDict):
13
+ ask_exchange: NotRequired[int]
14
+ r"""Ask exchange ID"""
15
+ ask_price: NotRequired[float]
16
+ r"""Ask price"""
17
+ ask_size: NotRequired[float]
18
+ r"""Ask size"""
19
+ bid_exchange: NotRequired[int]
20
+ r"""Bid exchange ID"""
21
+ bid_price: NotRequired[float]
22
+ r"""Bid price"""
23
+ bid_size: NotRequired[float]
24
+ r"""Bid size"""
25
+ sequence_number: NotRequired[int]
26
+ r"""Sequence number"""
27
+ sip_timestamp: NotRequired[int]
28
+ r"""SIP timestamp (nanoseconds)"""
29
+
30
+
31
+ class OptionQuotesResponseResult(BaseModel):
32
+ ask_exchange: Annotated[Optional[int], pydantic.Field(alias="askExchange")] = None
33
+ r"""Ask exchange ID"""
34
+
35
+ ask_price: Annotated[Optional[float], pydantic.Field(alias="askPrice")] = None
36
+ r"""Ask price"""
37
+
38
+ ask_size: Annotated[Optional[float], pydantic.Field(alias="askSize")] = None
39
+ r"""Ask size"""
40
+
41
+ bid_exchange: Annotated[Optional[int], pydantic.Field(alias="bidExchange")] = None
42
+ r"""Bid exchange ID"""
43
+
44
+ bid_price: Annotated[Optional[float], pydantic.Field(alias="bidPrice")] = None
45
+ r"""Bid price"""
46
+
47
+ bid_size: Annotated[Optional[float], pydantic.Field(alias="bidSize")] = None
48
+ r"""Bid size"""
49
+
50
+ sequence_number: Annotated[
51
+ Optional[int], pydantic.Field(alias="sequenceNumber")
52
+ ] = None
53
+ r"""Sequence number"""
54
+
55
+ sip_timestamp: Annotated[Optional[int], pydantic.Field(alias="sipTimestamp")] = None
56
+ r"""SIP timestamp (nanoseconds)"""
57
+
58
+ @model_serializer(mode="wrap")
59
+ def serialize_model(self, handler):
60
+ optional_fields = set(
61
+ [
62
+ "askExchange",
63
+ "askPrice",
64
+ "askSize",
65
+ "bidExchange",
66
+ "bidPrice",
67
+ "bidSize",
68
+ "sequenceNumber",
69
+ "sipTimestamp",
70
+ ]
71
+ )
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
+ class OptionQuotesResponseTypedDict(TypedDict):
87
+ r"""Paginated list of historical quotes for an options contract."""
88
+
89
+ next_url: NotRequired[str]
90
+ r"""URL for next page of results"""
91
+ request_id: NotRequired[str]
92
+ r"""Unique request ID"""
93
+ results: NotRequired[List[OptionQuotesResponseResultTypedDict]]
94
+ r"""Array of options quote objects"""
95
+ status: NotRequired[str]
96
+ 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."""
97
+
98
+
99
+ class OptionQuotesResponse(BaseModel):
100
+ r"""Paginated list of historical quotes for an options contract."""
101
+
102
+ next_url: Annotated[Optional[str], pydantic.Field(alias="nextUrl")] = None
103
+ r"""URL for next page of results"""
104
+
105
+ request_id: Annotated[Optional[str], pydantic.Field(alias="requestId")] = None
106
+ r"""Unique request ID"""
107
+
108
+ results: Optional[List[OptionQuotesResponseResult]] = None
109
+ r"""Array of options quote objects"""
110
+
111
+ status: Optional[str] = None
112
+ 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."""
113
+
114
+ @model_serializer(mode="wrap")
115
+ def serialize_model(self, handler):
116
+ optional_fields = set(["nextUrl", "requestId", "results", "status"])
117
+ serialized = handler(self)
118
+ m = {}
119
+
120
+ for n, f in type(self).model_fields.items():
121
+ k = f.alias or n
122
+ val = serialized.get(k, serialized.get(n))
123
+
124
+ if val != UNSET_SENTINEL:
125
+ if val is not None or k not in optional_fields:
126
+ m[k] = val
127
+
128
+ return m
129
+
130
+
131
+ try:
132
+ OptionQuotesResponseResult.model_rebuild()
133
+ except NameError:
134
+ pass
135
+ try:
136
+ OptionQuotesResponse.model_rebuild()
137
+ except NameError:
138
+ pass
@@ -0,0 +1,265 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 3d4104e6512f
3
+
4
+ from __future__ import annotations
5
+ from enum import Enum
6
+ from finance_dev import models, utils
7
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
8
+ import pydantic
9
+ from pydantic import field_serializer, model_serializer
10
+ from typing import List, Optional
11
+ from typing_extensions import Annotated, NotRequired, TypedDict
12
+
13
+
14
+ class OptionsActivityResponsePutCall(str, Enum, metaclass=utils.OpenEnumMeta):
15
+ r"""Option type (PUT or CALL)"""
16
+
17
+ PUT = "PUT"
18
+ CALL = "CALL"
19
+ P = "P"
20
+ C = "C"
21
+
22
+
23
+ class ActivityTypedDict(TypedDict):
24
+ aggressor_ind: NotRequired[str]
25
+ r"""Aggressor indicator showing buyer/seller aggressiveness"""
26
+ ask: NotRequired[str]
27
+ r"""Current ask price"""
28
+ bid: NotRequired[str]
29
+ r"""Current bid price"""
30
+ cost_basis: NotRequired[str]
31
+ r"""Total cost of the options position"""
32
+ date_: NotRequired[str]
33
+ r"""Trade date in YYYY-MM-DD format"""
34
+ date_expiration: NotRequired[str]
35
+ r"""Option expiration date in YYYY-MM-DD format"""
36
+ description: NotRequired[str]
37
+ r"""Brief description of the options activity"""
38
+ description_extended: NotRequired[str]
39
+ r"""Detailed description with full trade context"""
40
+ exchange: NotRequired[str]
41
+ r"""Exchange code where the data originates. Format depends on the upstream data source and may use MIC, ISO 10383, or a vendor-specific code."""
42
+ execution_estimate: NotRequired[str]
43
+ r"""Estimated execution location (AT_BID, AT_ASK, AT_MID)"""
44
+ id: NotRequired[str]
45
+ r"""Unique identifier for the options activity record"""
46
+ midpoint: NotRequired[str]
47
+ r"""Midpoint between bid and ask prices"""
48
+ open_interest: NotRequired[str]
49
+ r"""Total open interest for this option contract"""
50
+ option_activity_type: NotRequired[str]
51
+ r"""Type of activity (SWEEP, BLOCK, LARGE, UNUSUAL)"""
52
+ option_symbol: NotRequired[str]
53
+ r"""OCC option symbol identifier"""
54
+ price: NotRequired[str]
55
+ r"""Execution price per contract"""
56
+ put_call: NotRequired[OptionsActivityResponsePutCall]
57
+ r"""Option type (PUT or CALL)"""
58
+ sentiment: NotRequired[str]
59
+ r"""Market sentiment indicator (BULLISH, BEARISH, NEUTRAL)"""
60
+ size: NotRequired[str]
61
+ r"""Number of contracts traded"""
62
+ strike_price: NotRequired[str]
63
+ r"""Strike price of the option contract"""
64
+ ticker: NotRequired[str]
65
+ r"""Underlying stock ticker symbol"""
66
+ time: NotRequired[str]
67
+ r"""Trade execution time in HH:MM:SS format"""
68
+ trade_count: NotRequired[str]
69
+ r"""Number of individual trades in this activity"""
70
+ underlying_price: NotRequired[str]
71
+ r"""Current price of the underlying security"""
72
+ underlying_type: NotRequired[str]
73
+ r"""Type of underlying security (STOCK, ETF, INDEX)"""
74
+ updated: NotRequired[int]
75
+ r"""Unix timestamp when the record was last updated"""
76
+ volume: NotRequired[str]
77
+ r"""Total volume traded for the day"""
78
+
79
+
80
+ class Activity(BaseModel):
81
+ aggressor_ind: Annotated[Optional[str], pydantic.Field(alias="aggressorInd")] = None
82
+ r"""Aggressor indicator showing buyer/seller aggressiveness"""
83
+
84
+ ask: Optional[str] = None
85
+ r"""Current ask price"""
86
+
87
+ bid: Optional[str] = None
88
+ r"""Current bid price"""
89
+
90
+ cost_basis: Annotated[Optional[str], pydantic.Field(alias="costBasis")] = None
91
+ r"""Total cost of the options position"""
92
+
93
+ date_: Annotated[Optional[str], pydantic.Field(alias="date")] = None
94
+ r"""Trade date in YYYY-MM-DD format"""
95
+
96
+ date_expiration: Annotated[
97
+ Optional[str], pydantic.Field(alias="dateExpiration")
98
+ ] = None
99
+ r"""Option expiration date in YYYY-MM-DD format"""
100
+
101
+ description: Optional[str] = None
102
+ r"""Brief description of the options activity"""
103
+
104
+ description_extended: Annotated[
105
+ Optional[str], pydantic.Field(alias="descriptionExtended")
106
+ ] = None
107
+ r"""Detailed description with full trade context"""
108
+
109
+ exchange: Optional[str] = None
110
+ r"""Exchange code where the data originates. Format depends on the upstream data source and may use MIC, ISO 10383, or a vendor-specific code."""
111
+
112
+ execution_estimate: Annotated[
113
+ Optional[str], pydantic.Field(alias="executionEstimate")
114
+ ] = None
115
+ r"""Estimated execution location (AT_BID, AT_ASK, AT_MID)"""
116
+
117
+ id: Optional[str] = None
118
+ r"""Unique identifier for the options activity record"""
119
+
120
+ midpoint: Optional[str] = None
121
+ r"""Midpoint between bid and ask prices"""
122
+
123
+ open_interest: Annotated[Optional[str], pydantic.Field(alias="openInterest")] = None
124
+ r"""Total open interest for this option contract"""
125
+
126
+ option_activity_type: Annotated[
127
+ Optional[str], pydantic.Field(alias="optionActivityType")
128
+ ] = None
129
+ r"""Type of activity (SWEEP, BLOCK, LARGE, UNUSUAL)"""
130
+
131
+ option_symbol: Annotated[Optional[str], pydantic.Field(alias="optionSymbol")] = None
132
+ r"""OCC option symbol identifier"""
133
+
134
+ price: Optional[str] = None
135
+ r"""Execution price per contract"""
136
+
137
+ put_call: Annotated[
138
+ Optional[OptionsActivityResponsePutCall], pydantic.Field(alias="putCall")
139
+ ] = None
140
+ r"""Option type (PUT or CALL)"""
141
+
142
+ sentiment: Optional[str] = None
143
+ r"""Market sentiment indicator (BULLISH, BEARISH, NEUTRAL)"""
144
+
145
+ size: Optional[str] = None
146
+ r"""Number of contracts traded"""
147
+
148
+ strike_price: Annotated[Optional[str], pydantic.Field(alias="strikePrice")] = None
149
+ r"""Strike price of the option contract"""
150
+
151
+ ticker: Optional[str] = None
152
+ r"""Underlying stock ticker symbol"""
153
+
154
+ time: Optional[str] = None
155
+ r"""Trade execution time in HH:MM:SS format"""
156
+
157
+ trade_count: Annotated[Optional[str], pydantic.Field(alias="tradeCount")] = None
158
+ r"""Number of individual trades in this activity"""
159
+
160
+ underlying_price: Annotated[
161
+ Optional[str], pydantic.Field(alias="underlyingPrice")
162
+ ] = None
163
+ r"""Current price of the underlying security"""
164
+
165
+ underlying_type: Annotated[
166
+ Optional[str], pydantic.Field(alias="underlyingType")
167
+ ] = None
168
+ r"""Type of underlying security (STOCK, ETF, INDEX)"""
169
+
170
+ updated: Optional[int] = None
171
+ r"""Unix timestamp when the record was last updated"""
172
+
173
+ volume: Optional[str] = None
174
+ r"""Total volume traded for the day"""
175
+
176
+ @field_serializer("put_call")
177
+ def serialize_put_call(self, value):
178
+ if isinstance(value, str):
179
+ try:
180
+ return models.OptionsActivityResponsePutCall(value)
181
+ except ValueError:
182
+ return value
183
+ return value
184
+
185
+ @model_serializer(mode="wrap")
186
+ def serialize_model(self, handler):
187
+ optional_fields = set(
188
+ [
189
+ "aggressorInd",
190
+ "ask",
191
+ "bid",
192
+ "costBasis",
193
+ "date",
194
+ "dateExpiration",
195
+ "description",
196
+ "descriptionExtended",
197
+ "exchange",
198
+ "executionEstimate",
199
+ "id",
200
+ "midpoint",
201
+ "openInterest",
202
+ "optionActivityType",
203
+ "optionSymbol",
204
+ "price",
205
+ "putCall",
206
+ "sentiment",
207
+ "size",
208
+ "strikePrice",
209
+ "ticker",
210
+ "time",
211
+ "tradeCount",
212
+ "underlyingPrice",
213
+ "underlyingType",
214
+ "updated",
215
+ "volume",
216
+ ]
217
+ )
218
+ serialized = handler(self)
219
+ m = {}
220
+
221
+ for n, f in type(self).model_fields.items():
222
+ k = f.alias or n
223
+ val = serialized.get(k, serialized.get(n))
224
+
225
+ if val != UNSET_SENTINEL:
226
+ if val is not None or k not in optional_fields:
227
+ m[k] = val
228
+
229
+ return m
230
+
231
+
232
+ class OptionsActivityResponseTypedDict(TypedDict):
233
+ r"""Response containing unusual options activity records."""
234
+
235
+ activities: NotRequired[List[ActivityTypedDict]]
236
+ r"""Array of options activity records"""
237
+
238
+
239
+ class OptionsActivityResponse(BaseModel):
240
+ r"""Response containing unusual options activity records."""
241
+
242
+ activities: Optional[List[Activity]] = None
243
+ r"""Array of options activity records"""
244
+
245
+ @model_serializer(mode="wrap")
246
+ def serialize_model(self, handler):
247
+ optional_fields = set(["activities"])
248
+ serialized = handler(self)
249
+ m = {}
250
+
251
+ for n, f in type(self).model_fields.items():
252
+ k = f.alias or n
253
+ val = serialized.get(k, serialized.get(n))
254
+
255
+ if val != UNSET_SENTINEL:
256
+ if val is not None or k not in optional_fields:
257
+ m[k] = val
258
+
259
+ return m
260
+
261
+
262
+ try:
263
+ Activity.model_rebuild()
264
+ except NameError:
265
+ pass
@@ -0,0 +1,85 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: e027c7c6888e
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 OptionSnapshotContractDetailsTypedDict(TypedDict):
13
+ r"""Static contract metadata (`OptionSnapshotDetailsDTO`)."""
14
+
15
+ contract_type: NotRequired[str]
16
+ r"""Contract type (for example call or put)."""
17
+ exercise_style: NotRequired[str]
18
+ r"""Exercise style of the contract (for example american or european)"""
19
+ expiration_date: NotRequired[str]
20
+ r"""Expiration date (ISO date string)."""
21
+ shares_per_contract: NotRequired[float]
22
+ r"""Number of shares of the underlying covered by one contract"""
23
+ strike_price: NotRequired[float]
24
+ r"""Strike price of the contract"""
25
+ ticker: NotRequired[str]
26
+ r"""OCC-format options ticker."""
27
+
28
+
29
+ class OptionSnapshotContractDetails(BaseModel):
30
+ r"""Static contract metadata (`OptionSnapshotDetailsDTO`)."""
31
+
32
+ contract_type: Annotated[Optional[str], pydantic.Field(alias="contractType")] = None
33
+ r"""Contract type (for example call or put)."""
34
+
35
+ exercise_style: Annotated[Optional[str], pydantic.Field(alias="exerciseStyle")] = (
36
+ None
37
+ )
38
+ r"""Exercise style of the contract (for example american or european)"""
39
+
40
+ expiration_date: Annotated[
41
+ Optional[str], pydantic.Field(alias="expirationDate")
42
+ ] = None
43
+ r"""Expiration date (ISO date string)."""
44
+
45
+ shares_per_contract: Annotated[
46
+ Optional[float], pydantic.Field(alias="sharesPerContract")
47
+ ] = None
48
+ r"""Number of shares of the underlying covered by one contract"""
49
+
50
+ strike_price: Annotated[Optional[float], pydantic.Field(alias="strikePrice")] = None
51
+ r"""Strike price of the contract"""
52
+
53
+ ticker: Optional[str] = None
54
+ r"""OCC-format options ticker."""
55
+
56
+ @model_serializer(mode="wrap")
57
+ def serialize_model(self, handler):
58
+ optional_fields = set(
59
+ [
60
+ "contractType",
61
+ "exerciseStyle",
62
+ "expirationDate",
63
+ "sharesPerContract",
64
+ "strikePrice",
65
+ "ticker",
66
+ ]
67
+ )
68
+ serialized = handler(self)
69
+ m = {}
70
+
71
+ for n, f in type(self).model_fields.items():
72
+ k = f.alias or n
73
+ val = serialized.get(k, serialized.get(n))
74
+
75
+ if val != UNSET_SENTINEL:
76
+ if val is not None or k not in optional_fields:
77
+ m[k] = val
78
+
79
+ return m
80
+
81
+
82
+ try:
83
+ OptionSnapshotContractDetails.model_rebuild()
84
+ except NameError:
85
+ pass
@@ -0,0 +1,107 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 54ddba7ce2b0
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 OptionSnapshotDayBarTypedDict(TypedDict):
13
+ r"""Most recent daily OHLCV bar for the contract (`OptionSnapshotDayBarDTO`)."""
14
+
15
+ change: NotRequired[float]
16
+ r"""Price change for the day"""
17
+ change_percent: NotRequired[float]
18
+ r"""Percentage price change for the day"""
19
+ close: NotRequired[float]
20
+ r"""Closing price for the day"""
21
+ high: NotRequired[float]
22
+ r"""Highest price for the day"""
23
+ last_updated: NotRequired[int]
24
+ r"""Timestamp of the last update to the day bar, as supplied by the market data provider"""
25
+ low: NotRequired[float]
26
+ r"""Lowest price for the day"""
27
+ open: NotRequired[float]
28
+ r"""Opening price for the day"""
29
+ previous_close: NotRequired[float]
30
+ r"""Previous day's closing price"""
31
+ volume: NotRequired[float]
32
+ r"""Trading volume for the day"""
33
+ vwap: NotRequired[float]
34
+ r"""Volume-weighted average price for the day"""
35
+
36
+
37
+ class OptionSnapshotDayBar(BaseModel):
38
+ r"""Most recent daily OHLCV bar for the contract (`OptionSnapshotDayBarDTO`)."""
39
+
40
+ change: Optional[float] = None
41
+ r"""Price change for the day"""
42
+
43
+ change_percent: Annotated[
44
+ Optional[float], pydantic.Field(alias="changePercent")
45
+ ] = None
46
+ r"""Percentage price change for the day"""
47
+
48
+ close: Optional[float] = None
49
+ r"""Closing price for the day"""
50
+
51
+ high: Optional[float] = None
52
+ r"""Highest price for the day"""
53
+
54
+ last_updated: Annotated[Optional[int], pydantic.Field(alias="lastUpdated")] = None
55
+ r"""Timestamp of the last update to the day bar, as supplied by the market data provider"""
56
+
57
+ low: Optional[float] = None
58
+ r"""Lowest price for the day"""
59
+
60
+ open: Optional[float] = None
61
+ r"""Opening price for the day"""
62
+
63
+ previous_close: Annotated[
64
+ Optional[float], pydantic.Field(alias="previousClose")
65
+ ] = None
66
+ r"""Previous day's closing price"""
67
+
68
+ volume: Optional[float] = None
69
+ r"""Trading volume for the day"""
70
+
71
+ vwap: Optional[float] = None
72
+ r"""Volume-weighted average price for the day"""
73
+
74
+ @model_serializer(mode="wrap")
75
+ def serialize_model(self, handler):
76
+ optional_fields = set(
77
+ [
78
+ "change",
79
+ "changePercent",
80
+ "close",
81
+ "high",
82
+ "lastUpdated",
83
+ "low",
84
+ "open",
85
+ "previousClose",
86
+ "volume",
87
+ "vwap",
88
+ ]
89
+ )
90
+ serialized = handler(self)
91
+ m = {}
92
+
93
+ for n, f in type(self).model_fields.items():
94
+ k = f.alias or n
95
+ val = serialized.get(k, serialized.get(n))
96
+
97
+ if val != UNSET_SENTINEL:
98
+ if val is not None or k not in optional_fields:
99
+ m[k] = val
100
+
101
+ return m
102
+
103
+
104
+ try:
105
+ OptionSnapshotDayBar.model_rebuild()
106
+ except NameError:
107
+ pass
@@ -0,0 +1,67 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: f57d4a6afeca
3
+
4
+ from __future__ import annotations
5
+ from finance_dev.types import (
6
+ BaseModel,
7
+ Nullable,
8
+ OptionalNullable,
9
+ UNSET,
10
+ UNSET_SENTINEL,
11
+ )
12
+ from pydantic import model_serializer
13
+ from typing_extensions import NotRequired, TypedDict
14
+
15
+
16
+ class OptionSnapshotGreeksTypedDict(TypedDict):
17
+ r"""Greeks when available (`OptionSnapshotGreeksDTO`)."""
18
+
19
+ delta: NotRequired[Nullable[float]]
20
+ r"""Delta of the contract"""
21
+ gamma: NotRequired[Nullable[float]]
22
+ r"""Gamma of the contract"""
23
+ theta: NotRequired[Nullable[float]]
24
+ r"""Theta of the contract"""
25
+ vega: NotRequired[Nullable[float]]
26
+ r"""Vega of the contract"""
27
+
28
+
29
+ class OptionSnapshotGreeks(BaseModel):
30
+ r"""Greeks when available (`OptionSnapshotGreeksDTO`)."""
31
+
32
+ delta: OptionalNullable[float] = UNSET
33
+ r"""Delta of the contract"""
34
+
35
+ gamma: OptionalNullable[float] = UNSET
36
+ r"""Gamma of the contract"""
37
+
38
+ theta: OptionalNullable[float] = UNSET
39
+ r"""Theta of the contract"""
40
+
41
+ vega: OptionalNullable[float] = UNSET
42
+ r"""Vega of the contract"""
43
+
44
+ @model_serializer(mode="wrap")
45
+ def serialize_model(self, handler):
46
+ optional_fields = set(["delta", "gamma", "theta", "vega"])
47
+ nullable_fields = set(["delta", "gamma", "theta", "vega"])
48
+ serialized = handler(self)
49
+ m = {}
50
+
51
+ for n, f in type(self).model_fields.items():
52
+ k = f.alias or n
53
+ val = serialized.get(k, serialized.get(n))
54
+ is_nullable_and_explicitly_set = (
55
+ k in nullable_fields
56
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
57
+ )
58
+
59
+ if val != UNSET_SENTINEL:
60
+ if (
61
+ val is not None
62
+ or k not in optional_fields
63
+ or is_nullable_and_explicitly_set
64
+ ):
65
+ m[k] = val
66
+
67
+ return m