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,164 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 2b6bdc510e4a
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 StockTradesResponseResultTypedDict(TypedDict):
13
+ conditions: NotRequired[List[int]]
14
+ r"""Trade conditions"""
15
+ correction: NotRequired[int]
16
+ r"""Correction indicator"""
17
+ exchange: NotRequired[int]
18
+ r"""Numeric exchange identifier supplied by the market data provider."""
19
+ id: NotRequired[str]
20
+ r"""Trade ID"""
21
+ participant_timestamp: NotRequired[int]
22
+ r"""Participant timestamp (nanoseconds)"""
23
+ price: NotRequired[float]
24
+ r"""Trade price"""
25
+ sequence_number: NotRequired[int]
26
+ r"""Sequence number"""
27
+ sip_timestamp: NotRequired[int]
28
+ r"""SIP timestamp (nanoseconds)"""
29
+ size: NotRequired[float]
30
+ r"""Trade size (shares)"""
31
+ tape: NotRequired[int]
32
+ r"""Tape"""
33
+ trf_id: NotRequired[int]
34
+ r"""TRF ID"""
35
+ trf_timestamp: NotRequired[int]
36
+ r"""TRF timestamp"""
37
+
38
+
39
+ class StockTradesResponseResult(BaseModel):
40
+ conditions: Optional[List[int]] = None
41
+ r"""Trade conditions"""
42
+
43
+ correction: Optional[int] = None
44
+ r"""Correction indicator"""
45
+
46
+ exchange: Optional[int] = None
47
+ r"""Numeric exchange identifier supplied by the market data provider."""
48
+
49
+ id: Optional[str] = None
50
+ r"""Trade ID"""
51
+
52
+ participant_timestamp: Annotated[
53
+ Optional[int], pydantic.Field(alias="participantTimestamp")
54
+ ] = None
55
+ r"""Participant timestamp (nanoseconds)"""
56
+
57
+ price: Optional[float] = None
58
+ r"""Trade price"""
59
+
60
+ sequence_number: Annotated[
61
+ Optional[int], pydantic.Field(alias="sequenceNumber")
62
+ ] = None
63
+ r"""Sequence number"""
64
+
65
+ sip_timestamp: Annotated[Optional[int], pydantic.Field(alias="sipTimestamp")] = None
66
+ r"""SIP timestamp (nanoseconds)"""
67
+
68
+ size: Optional[float] = None
69
+ r"""Trade size (shares)"""
70
+
71
+ tape: Optional[int] = None
72
+ r"""Tape"""
73
+
74
+ trf_id: Annotated[Optional[int], pydantic.Field(alias="trfId")] = None
75
+ r"""TRF ID"""
76
+
77
+ trf_timestamp: Annotated[Optional[int], pydantic.Field(alias="trfTimestamp")] = None
78
+ r"""TRF timestamp"""
79
+
80
+ @model_serializer(mode="wrap")
81
+ def serialize_model(self, handler):
82
+ optional_fields = set(
83
+ [
84
+ "conditions",
85
+ "correction",
86
+ "exchange",
87
+ "id",
88
+ "participantTimestamp",
89
+ "price",
90
+ "sequenceNumber",
91
+ "sipTimestamp",
92
+ "size",
93
+ "tape",
94
+ "trfId",
95
+ "trfTimestamp",
96
+ ]
97
+ )
98
+ serialized = handler(self)
99
+ m = {}
100
+
101
+ for n, f in type(self).model_fields.items():
102
+ k = f.alias or n
103
+ val = serialized.get(k, serialized.get(n))
104
+
105
+ if val != UNSET_SENTINEL:
106
+ if val is not None or k not in optional_fields:
107
+ m[k] = val
108
+
109
+ return m
110
+
111
+
112
+ class StockTradesResponseTypedDict(TypedDict):
113
+ r"""Paginated list of historical tick-level trades for a stock ticker."""
114
+
115
+ next_url: NotRequired[str]
116
+ r"""URL for next page of results"""
117
+ request_id: NotRequired[str]
118
+ r"""Unique request ID"""
119
+ results: NotRequired[List[StockTradesResponseResultTypedDict]]
120
+ r"""Array of trade objects"""
121
+ status: NotRequired[str]
122
+ 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."""
123
+
124
+
125
+ class StockTradesResponse(BaseModel):
126
+ r"""Paginated list of historical tick-level trades for a stock ticker."""
127
+
128
+ next_url: Annotated[Optional[str], pydantic.Field(alias="nextUrl")] = None
129
+ r"""URL for next page of results"""
130
+
131
+ request_id: Annotated[Optional[str], pydantic.Field(alias="requestId")] = None
132
+ r"""Unique request ID"""
133
+
134
+ results: Optional[List[StockTradesResponseResult]] = None
135
+ r"""Array of trade objects"""
136
+
137
+ status: Optional[str] = None
138
+ 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."""
139
+
140
+ @model_serializer(mode="wrap")
141
+ def serialize_model(self, handler):
142
+ optional_fields = set(["nextUrl", "requestId", "results", "status"])
143
+ serialized = handler(self)
144
+ m = {}
145
+
146
+ for n, f in type(self).model_fields.items():
147
+ k = f.alias or n
148
+ val = serialized.get(k, serialized.get(n))
149
+
150
+ if val != UNSET_SENTINEL:
151
+ if val is not None or k not in optional_fields:
152
+ m[k] = val
153
+
154
+ return m
155
+
156
+
157
+ try:
158
+ StockTradesResponseResult.model_rebuild()
159
+ except NameError:
160
+ pass
161
+ try:
162
+ StockTradesResponse.model_rebuild()
163
+ except NameError:
164
+ pass
@@ -0,0 +1,158 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 1edd5fdda7b1
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 SupplyChainResponseDataTypedDict(TypedDict):
13
+ country: NotRequired[str]
14
+ r"""Country of the related company."""
15
+ customer: NotRequired[bool]
16
+ r"""Whether the related company is a customer."""
17
+ industry: NotRequired[str]
18
+ r"""Industry of the related company."""
19
+ name: NotRequired[str]
20
+ r"""Name of the related company."""
21
+ one_month_correlation: NotRequired[float]
22
+ r"""Price correlation with the related company over one month."""
23
+ one_year_correlation: NotRequired[float]
24
+ r"""Price correlation with the related company over one year."""
25
+ six_month_correlation: NotRequired[float]
26
+ r"""Price correlation with the related company over six months."""
27
+ supplier: NotRequired[bool]
28
+ r"""Whether the related company is a supplier."""
29
+ symbol: NotRequired[str]
30
+ r"""Ticker symbol of the related company."""
31
+ three_month_correlation: NotRequired[float]
32
+ r"""Price correlation with the related company over three months."""
33
+ two_week_correlation: NotRequired[float]
34
+ r"""Price correlation with the related company over two weeks."""
35
+ two_year_correlation: NotRequired[float]
36
+ r"""Price correlation with the related company over two years."""
37
+
38
+
39
+ class SupplyChainResponseData(BaseModel):
40
+ country: Optional[str] = None
41
+ r"""Country of the related company."""
42
+
43
+ customer: Optional[bool] = None
44
+ r"""Whether the related company is a customer."""
45
+
46
+ industry: Optional[str] = None
47
+ r"""Industry of the related company."""
48
+
49
+ name: Optional[str] = None
50
+ r"""Name of the related company."""
51
+
52
+ one_month_correlation: Annotated[
53
+ Optional[float], pydantic.Field(alias="oneMonthCorrelation")
54
+ ] = None
55
+ r"""Price correlation with the related company over one month."""
56
+
57
+ one_year_correlation: Annotated[
58
+ Optional[float], pydantic.Field(alias="oneYearCorrelation")
59
+ ] = None
60
+ r"""Price correlation with the related company over one year."""
61
+
62
+ six_month_correlation: Annotated[
63
+ Optional[float], pydantic.Field(alias="sixMonthCorrelation")
64
+ ] = None
65
+ r"""Price correlation with the related company over six months."""
66
+
67
+ supplier: Optional[bool] = None
68
+ r"""Whether the related company is a supplier."""
69
+
70
+ symbol: Optional[str] = None
71
+ r"""Ticker symbol of the related company."""
72
+
73
+ three_month_correlation: Annotated[
74
+ Optional[float], pydantic.Field(alias="threeMonthCorrelation")
75
+ ] = None
76
+ r"""Price correlation with the related company over three months."""
77
+
78
+ two_week_correlation: Annotated[
79
+ Optional[float], pydantic.Field(alias="twoWeekCorrelation")
80
+ ] = None
81
+ r"""Price correlation with the related company over two weeks."""
82
+
83
+ two_year_correlation: Annotated[
84
+ Optional[float], pydantic.Field(alias="twoYearCorrelation")
85
+ ] = None
86
+ r"""Price correlation with the related company over two years."""
87
+
88
+ @model_serializer(mode="wrap")
89
+ def serialize_model(self, handler):
90
+ optional_fields = set(
91
+ [
92
+ "country",
93
+ "customer",
94
+ "industry",
95
+ "name",
96
+ "oneMonthCorrelation",
97
+ "oneYearCorrelation",
98
+ "sixMonthCorrelation",
99
+ "supplier",
100
+ "symbol",
101
+ "threeMonthCorrelation",
102
+ "twoWeekCorrelation",
103
+ "twoYearCorrelation",
104
+ ]
105
+ )
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
+ class SupplyChainResponseTypedDict(TypedDict):
121
+ r"""Supply chain relationships (suppliers and customers) for a company."""
122
+
123
+ data: NotRequired[List[SupplyChainResponseDataTypedDict]]
124
+ r"""Related companies in the supply chain."""
125
+ symbol: NotRequired[str]
126
+ r"""Ticker symbol of the company."""
127
+
128
+
129
+ class SupplyChainResponse(BaseModel):
130
+ r"""Supply chain relationships (suppliers and customers) for a company."""
131
+
132
+ data: Optional[List[SupplyChainResponseData]] = None
133
+ r"""Related companies in the supply chain."""
134
+
135
+ symbol: Optional[str] = None
136
+ r"""Ticker symbol of the company."""
137
+
138
+ @model_serializer(mode="wrap")
139
+ def serialize_model(self, handler):
140
+ optional_fields = set(["data", "symbol"])
141
+ serialized = handler(self)
142
+ m = {}
143
+
144
+ for n, f in type(self).model_fields.items():
145
+ k = f.alias or n
146
+ val = serialized.get(k, serialized.get(n))
147
+
148
+ if val != UNSET_SENTINEL:
149
+ if val is not None or k not in optional_fields:
150
+ m[k] = val
151
+
152
+ return m
153
+
154
+
155
+ try:
156
+ SupplyChainResponseData.model_rebuild()
157
+ except NameError:
158
+ pass
@@ -0,0 +1,68 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 7ce068aa1c31
3
+
4
+ from __future__ import annotations
5
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
6
+ from pydantic import model_serializer
7
+ from typing import List, Optional
8
+ from typing_extensions import NotRequired, TypedDict
9
+
10
+
11
+ class SupportResistanceLevelsResponseDataTypedDict(TypedDict):
12
+ r"""Support and resistance payload."""
13
+
14
+ levels: NotRequired[List[float]]
15
+ r"""List of support and resistance price levels."""
16
+
17
+
18
+ class SupportResistanceLevelsResponseData(BaseModel):
19
+ r"""Support and resistance payload."""
20
+
21
+ levels: Optional[List[float]] = None
22
+ r"""List of support and resistance price levels."""
23
+
24
+ @model_serializer(mode="wrap")
25
+ def serialize_model(self, handler):
26
+ optional_fields = set(["levels"])
27
+ serialized = handler(self)
28
+ m = {}
29
+
30
+ for n, f in type(self).model_fields.items():
31
+ k = f.alias or n
32
+ val = serialized.get(k, serialized.get(n))
33
+
34
+ if val != UNSET_SENTINEL:
35
+ if val is not None or k not in optional_fields:
36
+ m[k] = val
37
+
38
+ return m
39
+
40
+
41
+ class SupportResistanceLevelsResponseTypedDict(TypedDict):
42
+ r"""Support and resistance price levels for a symbol and resolution from Finnhub."""
43
+
44
+ data: NotRequired[SupportResistanceLevelsResponseDataTypedDict]
45
+ r"""Support and resistance payload."""
46
+
47
+
48
+ class SupportResistanceLevelsResponse(BaseModel):
49
+ r"""Support and resistance price levels for a symbol and resolution from Finnhub."""
50
+
51
+ data: Optional[SupportResistanceLevelsResponseData] = None
52
+ r"""Support and resistance payload."""
53
+
54
+ @model_serializer(mode="wrap")
55
+ def serialize_model(self, handler):
56
+ optional_fields = set(["data"])
57
+ serialized = handler(self)
58
+ m = {}
59
+
60
+ for n, f in type(self).model_fields.items():
61
+ k = f.alias or n
62
+ val = serialized.get(k, serialized.get(n))
63
+
64
+ if val != UNSET_SENTINEL:
65
+ if val is not None or k not in optional_fields:
66
+ m[k] = val
67
+
68
+ return m
@@ -0,0 +1,119 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 1c2726ca5c1b
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 SymbolDetailsTypedDict(TypedDict):
13
+ r"""Compact symbol summary returned by top movers and activity endpoints. Use it for market lists such as gainers, losers, and most active."""
14
+
15
+ change: NotRequired[float]
16
+ r"""Price change from previous close"""
17
+ change_percent: NotRequired[float]
18
+ r"""Percentage change from previous close"""
19
+ is_etf: NotRequired[bool]
20
+ r"""Whether the symbol is an ETF"""
21
+ last_price: NotRequired[float]
22
+ r"""Most recent trading price"""
23
+ logo_url: NotRequired[str]
24
+ r"""URL to the company or ETF logo. Use it for visual identification in symbol lists."""
25
+ previous_close: NotRequired[float]
26
+ r"""Previous session close price. Use it as the baseline for change and changePercent."""
27
+ sector: NotRequired[str]
28
+ r"""Sector classification for the asset. Use it for grouping and filtering symbol lists."""
29
+ sic_code: NotRequired[str]
30
+ r"""Standard Industrial Classification code"""
31
+ symbol: NotRequired[str]
32
+ r"""Trading symbol for the asset. Use this exact value when fetching quotes, charts, or research."""
33
+ timestamp: NotRequired[float]
34
+ r"""Timestamp of the last update"""
35
+ type: NotRequired[str]
36
+ r"""Instrument class or provider category returned by the market data service. This value is not the trading order type."""
37
+ volume: NotRequired[float]
38
+ r"""Shares or contracts traded during the session. Use it to rank activity and liquidity."""
39
+
40
+
41
+ class SymbolDetails(BaseModel):
42
+ r"""Compact symbol summary returned by top movers and activity endpoints. Use it for market lists such as gainers, losers, and most active."""
43
+
44
+ change: Optional[float] = None
45
+ r"""Price change from previous close"""
46
+
47
+ change_percent: Annotated[
48
+ Optional[float], pydantic.Field(alias="changePercent")
49
+ ] = None
50
+ r"""Percentage change from previous close"""
51
+
52
+ is_etf: Annotated[Optional[bool], pydantic.Field(alias="isETF")] = None
53
+ r"""Whether the symbol is an ETF"""
54
+
55
+ last_price: Annotated[Optional[float], pydantic.Field(alias="lastPrice")] = None
56
+ r"""Most recent trading price"""
57
+
58
+ logo_url: Annotated[Optional[str], pydantic.Field(alias="logoUrl")] = None
59
+ r"""URL to the company or ETF logo. Use it for visual identification in symbol lists."""
60
+
61
+ previous_close: Annotated[
62
+ Optional[float], pydantic.Field(alias="previousClose")
63
+ ] = None
64
+ r"""Previous session close price. Use it as the baseline for change and changePercent."""
65
+
66
+ sector: Optional[str] = None
67
+ r"""Sector classification for the asset. Use it for grouping and filtering symbol lists."""
68
+
69
+ sic_code: Annotated[Optional[str], pydantic.Field(alias="sicCode")] = None
70
+ r"""Standard Industrial Classification code"""
71
+
72
+ symbol: Optional[str] = None
73
+ r"""Trading symbol for the asset. Use this exact value when fetching quotes, charts, or research."""
74
+
75
+ timestamp: Optional[float] = None
76
+ r"""Timestamp of the last update"""
77
+
78
+ type: Optional[str] = None
79
+ r"""Instrument class or provider category returned by the market data service. This value is not the trading order type."""
80
+
81
+ volume: Optional[float] = None
82
+ r"""Shares or contracts traded during the session. Use it to rank activity and liquidity."""
83
+
84
+ @model_serializer(mode="wrap")
85
+ def serialize_model(self, handler):
86
+ optional_fields = set(
87
+ [
88
+ "change",
89
+ "changePercent",
90
+ "isETF",
91
+ "lastPrice",
92
+ "logoUrl",
93
+ "previousClose",
94
+ "sector",
95
+ "sicCode",
96
+ "symbol",
97
+ "timestamp",
98
+ "type",
99
+ "volume",
100
+ ]
101
+ )
102
+ serialized = handler(self)
103
+ m = {}
104
+
105
+ for n, f in type(self).model_fields.items():
106
+ k = f.alias or n
107
+ val = serialized.get(k, serialized.get(n))
108
+
109
+ if val != UNSET_SENTINEL:
110
+ if val is not None or k not in optional_fields:
111
+ m[k] = val
112
+
113
+ return m
114
+
115
+
116
+ try:
117
+ SymbolDetails.model_rebuild()
118
+ except NameError:
119
+ pass
@@ -0,0 +1,43 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: c5c04db1a652
3
+
4
+ from __future__ import annotations
5
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
6
+ from pydantic import model_serializer
7
+ from typing import Optional
8
+ from typing_extensions import NotRequired, TypedDict
9
+
10
+
11
+ class SymbolErrorTypedDict(TypedDict):
12
+ r"""Error entry for a symbol that could not be resolved in a details request."""
13
+
14
+ error: NotRequired[str]
15
+ r"""Error detail as a string. Exact message content is not fixed and should not be hard-coded."""
16
+ symbol: NotRequired[str]
17
+ r"""Symbol that had an error"""
18
+
19
+
20
+ class SymbolError(BaseModel):
21
+ r"""Error entry for a symbol that could not be resolved in a details request."""
22
+
23
+ error: Optional[str] = None
24
+ r"""Error detail as a string. Exact message content is not fixed and should not be hard-coded."""
25
+
26
+ symbol: Optional[str] = None
27
+ r"""Symbol that had an error"""
28
+
29
+ @model_serializer(mode="wrap")
30
+ def serialize_model(self, handler):
31
+ optional_fields = set(["error", "symbol"])
32
+ serialized = handler(self)
33
+ m = {}
34
+
35
+ for n, f in type(self).model_fields.items():
36
+ k = f.alias or n
37
+ val = serialized.get(k, serialized.get(n))
38
+
39
+ if val != UNSET_SENTINEL:
40
+ if val is not None or k not in optional_fields:
41
+ m[k] = val
42
+
43
+ return m