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,296 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: eeeeece614bc
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 IncomeStatementTypedDict(TypedDict):
13
+ r"""Single SEC income statement row."""
14
+
15
+ basic_earnings_per_share: NotRequired[float]
16
+ r"""Basic earnings per share."""
17
+ basic_shares_outstanding: NotRequired[float]
18
+ r"""Weighted average basic shares outstanding."""
19
+ cik: NotRequired[str]
20
+ r"""SEC Central Index Key of the company."""
21
+ consolidated_net_income_loss: NotRequired[float]
22
+ r"""Consolidated net income or loss, including noncontrolling interests."""
23
+ cost_of_revenue: NotRequired[float]
24
+ r"""Cost of revenue."""
25
+ depreciation_depletion_amortization: NotRequired[float]
26
+ r"""Depreciation, depletion and amortization expense."""
27
+ diluted_earnings_per_share: NotRequired[float]
28
+ r"""Diluted earnings per share."""
29
+ diluted_shares_outstanding: NotRequired[float]
30
+ r"""Weighted average diluted shares outstanding."""
31
+ discontinued_operations: NotRequired[float]
32
+ r"""Income or loss from discontinued operations."""
33
+ ebitda: NotRequired[float]
34
+ r"""Earnings before interest, taxes, depreciation and amortization."""
35
+ equity_in_affiliates: NotRequired[float]
36
+ r"""Income or loss from equity-method affiliates."""
37
+ extraordinary_items: NotRequired[float]
38
+ r"""Extraordinary items of income or loss."""
39
+ filing_date: NotRequired[str]
40
+ r"""Date the filing was submitted to the SEC."""
41
+ fiscal_quarter: NotRequired[float]
42
+ r"""Fiscal quarter of the reporting period."""
43
+ fiscal_year: NotRequired[float]
44
+ r"""Fiscal year of the reporting period."""
45
+ gross_profit: NotRequired[float]
46
+ r"""Revenue minus cost of revenue."""
47
+ income_before_income_taxes: NotRequired[float]
48
+ r"""Income before income taxes."""
49
+ income_taxes: NotRequired[float]
50
+ r"""Income tax expense."""
51
+ interest_expense: NotRequired[float]
52
+ r"""Interest expense."""
53
+ interest_income: NotRequired[float]
54
+ r"""Interest income."""
55
+ net_income_loss_attributable_common_shareholders: NotRequired[float]
56
+ r"""Net income or loss attributable to common shareholders."""
57
+ noncontrolling_interest: NotRequired[float]
58
+ r"""Net income attributable to noncontrolling interest."""
59
+ operating_income: NotRequired[float]
60
+ r"""Operating income."""
61
+ other_income_expense: NotRequired[float]
62
+ r"""Other income or expense."""
63
+ other_operating_expenses: NotRequired[float]
64
+ r"""Other operating expenses."""
65
+ period_end: NotRequired[str]
66
+ r"""End date of the reporting period."""
67
+ preferred_stock_dividends_declared: NotRequired[float]
68
+ r"""Preferred stock dividends declared."""
69
+ research_development: NotRequired[float]
70
+ r"""Research and development expense."""
71
+ revenue: NotRequired[float]
72
+ r"""Total revenue."""
73
+ selling_general_administrative: NotRequired[float]
74
+ r"""Selling, general and administrative expense."""
75
+ tickers: NotRequired[List[str]]
76
+ r"""Ticker symbols associated with the company."""
77
+ timeframe: NotRequired[str]
78
+ r"""Reporting timeframe of the statement, as supplied by the provider."""
79
+ total_operating_expenses: NotRequired[float]
80
+ r"""Total operating expenses."""
81
+ total_other_income_expense: NotRequired[float]
82
+ r"""Total other income or expense."""
83
+
84
+
85
+ class IncomeStatement(BaseModel):
86
+ r"""Single SEC income statement row."""
87
+
88
+ basic_earnings_per_share: Annotated[
89
+ Optional[float], pydantic.Field(alias="basicEarningsPerShare")
90
+ ] = None
91
+ r"""Basic earnings per share."""
92
+
93
+ basic_shares_outstanding: Annotated[
94
+ Optional[float], pydantic.Field(alias="basicSharesOutstanding")
95
+ ] = None
96
+ r"""Weighted average basic shares outstanding."""
97
+
98
+ cik: Optional[str] = None
99
+ r"""SEC Central Index Key of the company."""
100
+
101
+ consolidated_net_income_loss: Annotated[
102
+ Optional[float], pydantic.Field(alias="consolidatedNetIncomeLoss")
103
+ ] = None
104
+ r"""Consolidated net income or loss, including noncontrolling interests."""
105
+
106
+ cost_of_revenue: Annotated[
107
+ Optional[float], pydantic.Field(alias="costOfRevenue")
108
+ ] = None
109
+ r"""Cost of revenue."""
110
+
111
+ depreciation_depletion_amortization: Annotated[
112
+ Optional[float], pydantic.Field(alias="depreciationDepletionAmortization")
113
+ ] = None
114
+ r"""Depreciation, depletion and amortization expense."""
115
+
116
+ diluted_earnings_per_share: Annotated[
117
+ Optional[float], pydantic.Field(alias="dilutedEarningsPerShare")
118
+ ] = None
119
+ r"""Diluted earnings per share."""
120
+
121
+ diluted_shares_outstanding: Annotated[
122
+ Optional[float], pydantic.Field(alias="dilutedSharesOutstanding")
123
+ ] = None
124
+ r"""Weighted average diluted shares outstanding."""
125
+
126
+ discontinued_operations: Annotated[
127
+ Optional[float], pydantic.Field(alias="discontinuedOperations")
128
+ ] = None
129
+ r"""Income or loss from discontinued operations."""
130
+
131
+ ebitda: Optional[float] = None
132
+ r"""Earnings before interest, taxes, depreciation and amortization."""
133
+
134
+ equity_in_affiliates: Annotated[
135
+ Optional[float], pydantic.Field(alias="equityInAffiliates")
136
+ ] = None
137
+ r"""Income or loss from equity-method affiliates."""
138
+
139
+ extraordinary_items: Annotated[
140
+ Optional[float], pydantic.Field(alias="extraordinaryItems")
141
+ ] = None
142
+ r"""Extraordinary items of income or loss."""
143
+
144
+ filing_date: Annotated[Optional[str], pydantic.Field(alias="filingDate")] = None
145
+ r"""Date the filing was submitted to the SEC."""
146
+
147
+ fiscal_quarter: Annotated[
148
+ Optional[float], pydantic.Field(alias="fiscalQuarter")
149
+ ] = None
150
+ r"""Fiscal quarter of the reporting period."""
151
+
152
+ fiscal_year: Annotated[Optional[float], pydantic.Field(alias="fiscalYear")] = None
153
+ r"""Fiscal year of the reporting period."""
154
+
155
+ gross_profit: Annotated[Optional[float], pydantic.Field(alias="grossProfit")] = None
156
+ r"""Revenue minus cost of revenue."""
157
+
158
+ income_before_income_taxes: Annotated[
159
+ Optional[float], pydantic.Field(alias="incomeBeforeIncomeTaxes")
160
+ ] = None
161
+ r"""Income before income taxes."""
162
+
163
+ income_taxes: Annotated[Optional[float], pydantic.Field(alias="incomeTaxes")] = None
164
+ r"""Income tax expense."""
165
+
166
+ interest_expense: Annotated[
167
+ Optional[float], pydantic.Field(alias="interestExpense")
168
+ ] = None
169
+ r"""Interest expense."""
170
+
171
+ interest_income: Annotated[
172
+ Optional[float], pydantic.Field(alias="interestIncome")
173
+ ] = None
174
+ r"""Interest income."""
175
+
176
+ net_income_loss_attributable_common_shareholders: Annotated[
177
+ Optional[float],
178
+ pydantic.Field(alias="netIncomeLossAttributableCommonShareholders"),
179
+ ] = None
180
+ r"""Net income or loss attributable to common shareholders."""
181
+
182
+ noncontrolling_interest: Annotated[
183
+ Optional[float], pydantic.Field(alias="noncontrollingInterest")
184
+ ] = None
185
+ r"""Net income attributable to noncontrolling interest."""
186
+
187
+ operating_income: Annotated[
188
+ Optional[float], pydantic.Field(alias="operatingIncome")
189
+ ] = None
190
+ r"""Operating income."""
191
+
192
+ other_income_expense: Annotated[
193
+ Optional[float], pydantic.Field(alias="otherIncomeExpense")
194
+ ] = None
195
+ r"""Other income or expense."""
196
+
197
+ other_operating_expenses: Annotated[
198
+ Optional[float], pydantic.Field(alias="otherOperatingExpenses")
199
+ ] = None
200
+ r"""Other operating expenses."""
201
+
202
+ period_end: Annotated[Optional[str], pydantic.Field(alias="periodEnd")] = None
203
+ r"""End date of the reporting period."""
204
+
205
+ preferred_stock_dividends_declared: Annotated[
206
+ Optional[float], pydantic.Field(alias="preferredStockDividendsDeclared")
207
+ ] = None
208
+ r"""Preferred stock dividends declared."""
209
+
210
+ research_development: Annotated[
211
+ Optional[float], pydantic.Field(alias="researchDevelopment")
212
+ ] = None
213
+ r"""Research and development expense."""
214
+
215
+ revenue: Optional[float] = None
216
+ r"""Total revenue."""
217
+
218
+ selling_general_administrative: Annotated[
219
+ Optional[float], pydantic.Field(alias="sellingGeneralAdministrative")
220
+ ] = None
221
+ r"""Selling, general and administrative expense."""
222
+
223
+ tickers: Optional[List[str]] = None
224
+ r"""Ticker symbols associated with the company."""
225
+
226
+ timeframe: Optional[str] = None
227
+ r"""Reporting timeframe of the statement, as supplied by the provider."""
228
+
229
+ total_operating_expenses: Annotated[
230
+ Optional[float], pydantic.Field(alias="totalOperatingExpenses")
231
+ ] = None
232
+ r"""Total operating expenses."""
233
+
234
+ total_other_income_expense: Annotated[
235
+ Optional[float], pydantic.Field(alias="totalOtherIncomeExpense")
236
+ ] = None
237
+ r"""Total other income or expense."""
238
+
239
+ @model_serializer(mode="wrap")
240
+ def serialize_model(self, handler):
241
+ optional_fields = set(
242
+ [
243
+ "basicEarningsPerShare",
244
+ "basicSharesOutstanding",
245
+ "cik",
246
+ "consolidatedNetIncomeLoss",
247
+ "costOfRevenue",
248
+ "depreciationDepletionAmortization",
249
+ "dilutedEarningsPerShare",
250
+ "dilutedSharesOutstanding",
251
+ "discontinuedOperations",
252
+ "ebitda",
253
+ "equityInAffiliates",
254
+ "extraordinaryItems",
255
+ "filingDate",
256
+ "fiscalQuarter",
257
+ "fiscalYear",
258
+ "grossProfit",
259
+ "incomeBeforeIncomeTaxes",
260
+ "incomeTaxes",
261
+ "interestExpense",
262
+ "interestIncome",
263
+ "netIncomeLossAttributableCommonShareholders",
264
+ "noncontrollingInterest",
265
+ "operatingIncome",
266
+ "otherIncomeExpense",
267
+ "otherOperatingExpenses",
268
+ "periodEnd",
269
+ "preferredStockDividendsDeclared",
270
+ "researchDevelopment",
271
+ "revenue",
272
+ "sellingGeneralAdministrative",
273
+ "tickers",
274
+ "timeframe",
275
+ "totalOperatingExpenses",
276
+ "totalOtherIncomeExpense",
277
+ ]
278
+ )
279
+ serialized = handler(self)
280
+ m = {}
281
+
282
+ for n, f in type(self).model_fields.items():
283
+ k = f.alias or n
284
+ val = serialized.get(k, serialized.get(n))
285
+
286
+ if val != UNSET_SENTINEL:
287
+ if val is not None or k not in optional_fields:
288
+ m[k] = val
289
+
290
+ return m
291
+
292
+
293
+ try:
294
+ IncomeStatement.model_rebuild()
295
+ except NameError:
296
+ pass
@@ -0,0 +1,61 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 40616c771607
3
+
4
+ from __future__ import annotations
5
+ from .incomestatement import IncomeStatement, IncomeStatementTypedDict
6
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
7
+ import pydantic
8
+ from pydantic import model_serializer
9
+ from typing import List, Optional
10
+ from typing_extensions import Annotated, NotRequired, TypedDict
11
+
12
+
13
+ class IncomeStatementsResponseTypedDict(TypedDict):
14
+ r"""Paginated SEC income statements (results, status, requestId, nextUrl)."""
15
+
16
+ next_url: NotRequired[str]
17
+ r"""URL for the next page when more results exist"""
18
+ request_id: NotRequired[str]
19
+ r"""Provider request identifier. Include this when reporting data issues to support."""
20
+ results: NotRequired[List[IncomeStatementTypedDict]]
21
+ r"""Income statement rows for the requested filters. Use these to analyze revenue, expenses, and profitability."""
22
+ status: NotRequired[str]
23
+ 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."""
24
+
25
+
26
+ class IncomeStatementsResponse(BaseModel):
27
+ r"""Paginated SEC income statements (results, status, requestId, nextUrl)."""
28
+
29
+ next_url: Annotated[Optional[str], pydantic.Field(alias="nextUrl")] = None
30
+ r"""URL for the next page when more results exist"""
31
+
32
+ request_id: Annotated[Optional[str], pydantic.Field(alias="requestId")] = None
33
+ r"""Provider request identifier. Include this when reporting data issues to support."""
34
+
35
+ results: Optional[List[IncomeStatement]] = None
36
+ r"""Income statement rows for the requested filters. Use these to analyze revenue, expenses, and profitability."""
37
+
38
+ status: Optional[str] = None
39
+ 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."""
40
+
41
+ @model_serializer(mode="wrap")
42
+ def serialize_model(self, handler):
43
+ optional_fields = set(["nextUrl", "requestId", "results", "status"])
44
+ serialized = handler(self)
45
+ m = {}
46
+
47
+ for n, f in type(self).model_fields.items():
48
+ k = f.alias or n
49
+ val = serialized.get(k, serialized.get(n))
50
+
51
+ if val != UNSET_SENTINEL:
52
+ if val is not None or k not in optional_fields:
53
+ m[k] = val
54
+
55
+ return m
56
+
57
+
58
+ try:
59
+ IncomeStatementsResponse.model_rebuild()
60
+ except NameError:
61
+ pass
@@ -0,0 +1,194 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: c4a6e4a72129
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 IndexBarResponseBarTypedDict(TypedDict):
13
+ r"""OHLC bar data for the requested time period"""
14
+
15
+ close: NotRequired[float]
16
+ r"""Closing index value for the bar period"""
17
+ end_date: NotRequired[str]
18
+ r"""Bar end date in MM/DD/YYYY format"""
19
+ end_time: NotRequired[str]
20
+ r"""Bar end time in HH:MM AM/PM format"""
21
+ high: NotRequired[float]
22
+ r"""Highest index value during the bar period"""
23
+ low: NotRequired[float]
24
+ r"""Lowest index value during the bar period"""
25
+ open: NotRequired[float]
26
+ r"""Opening index value for the bar period"""
27
+ start_date: NotRequired[str]
28
+ r"""Bar start date in MM/DD/YYYY format"""
29
+ start_time: NotRequired[str]
30
+ r"""Bar start time in HH:MM AM/PM format"""
31
+ utc_offset: NotRequired[int]
32
+ r"""UTC time offset in hours (e.g., -5 for EST)"""
33
+ volume: NotRequired[int]
34
+ r"""Trading volume during the bar period (may be 0 for indices)"""
35
+
36
+
37
+ class IndexBarResponseBar(BaseModel):
38
+ r"""OHLC bar data for the requested time period"""
39
+
40
+ close: Optional[float] = None
41
+ r"""Closing index value for the bar period"""
42
+
43
+ end_date: Annotated[Optional[str], pydantic.Field(alias="endDate")] = None
44
+ r"""Bar end date in MM/DD/YYYY format"""
45
+
46
+ end_time: Annotated[Optional[str], pydantic.Field(alias="endTime")] = None
47
+ r"""Bar end time in HH:MM AM/PM format"""
48
+
49
+ high: Optional[float] = None
50
+ r"""Highest index value during the bar period"""
51
+
52
+ low: Optional[float] = None
53
+ r"""Lowest index value during the bar period"""
54
+
55
+ open: Optional[float] = None
56
+ r"""Opening index value for the bar period"""
57
+
58
+ start_date: Annotated[Optional[str], pydantic.Field(alias="startDate")] = None
59
+ r"""Bar start date in MM/DD/YYYY format"""
60
+
61
+ start_time: Annotated[Optional[str], pydantic.Field(alias="startTime")] = None
62
+ r"""Bar start time in HH:MM AM/PM format"""
63
+
64
+ utc_offset: Annotated[Optional[int], pydantic.Field(alias="utcOffset")] = None
65
+ r"""UTC time offset in hours (e.g., -5 for EST)"""
66
+
67
+ volume: Optional[int] = None
68
+ r"""Trading volume during the bar period (may be 0 for indices)"""
69
+
70
+ @model_serializer(mode="wrap")
71
+ def serialize_model(self, handler):
72
+ optional_fields = set(
73
+ [
74
+ "close",
75
+ "endDate",
76
+ "endTime",
77
+ "high",
78
+ "low",
79
+ "open",
80
+ "startDate",
81
+ "startTime",
82
+ "utcOffset",
83
+ "volume",
84
+ ]
85
+ )
86
+ serialized = handler(self)
87
+ m = {}
88
+
89
+ for n, f in type(self).model_fields.items():
90
+ k = f.alias or n
91
+ val = serialized.get(k, serialized.get(n))
92
+
93
+ if val != UNSET_SENTINEL:
94
+ if val is not None or k not in optional_fields:
95
+ m[k] = val
96
+
97
+ return m
98
+
99
+
100
+ class IndexBarResponseIndexTypedDict(TypedDict):
101
+ r"""Index metadata and identification"""
102
+
103
+ currency: NotRequired[str]
104
+ r"""Currency in which the index is quoted (e.g., USD, EUR)"""
105
+ index_group: NotRequired[str]
106
+ r"""Index group classification identifier"""
107
+ index_name: NotRequired[str]
108
+ r"""Full name of the index (e.g., S&P 500, Dow Jones)"""
109
+ symbol: NotRequired[str]
110
+ r"""Index ticker symbol (e.g., SPX, DJI)"""
111
+ valoren: NotRequired[str]
112
+ r"""Swiss securities identification number (Valoren)"""
113
+
114
+
115
+ class IndexBarResponseIndex(BaseModel):
116
+ r"""Index metadata and identification"""
117
+
118
+ currency: Optional[str] = None
119
+ r"""Currency in which the index is quoted (e.g., USD, EUR)"""
120
+
121
+ index_group: Annotated[Optional[str], pydantic.Field(alias="indexGroup")] = None
122
+ r"""Index group classification identifier"""
123
+
124
+ index_name: Annotated[Optional[str], pydantic.Field(alias="indexName")] = None
125
+ r"""Full name of the index (e.g., S&P 500, Dow Jones)"""
126
+
127
+ symbol: Optional[str] = None
128
+ r"""Index ticker symbol (e.g., SPX, DJI)"""
129
+
130
+ valoren: Optional[str] = None
131
+ r"""Swiss securities identification number (Valoren)"""
132
+
133
+ @model_serializer(mode="wrap")
134
+ def serialize_model(self, handler):
135
+ optional_fields = set(
136
+ ["currency", "indexGroup", "indexName", "symbol", "valoren"]
137
+ )
138
+ serialized = handler(self)
139
+ m = {}
140
+
141
+ for n, f in type(self).model_fields.items():
142
+ k = f.alias or n
143
+ val = serialized.get(k, serialized.get(n))
144
+
145
+ if val != UNSET_SENTINEL:
146
+ if val is not None or k not in optional_fields:
147
+ m[k] = val
148
+
149
+ return m
150
+
151
+
152
+ class IndexBarResponseTypedDict(TypedDict):
153
+ r"""Response containing a single OHLC bar for an index along with the index metadata."""
154
+
155
+ bar: NotRequired[IndexBarResponseBarTypedDict]
156
+ r"""OHLC bar data for the requested time period"""
157
+ index: NotRequired[IndexBarResponseIndexTypedDict]
158
+ r"""Index metadata and identification"""
159
+
160
+
161
+ class IndexBarResponse(BaseModel):
162
+ r"""Response containing a single OHLC bar for an index along with the index metadata."""
163
+
164
+ bar: Optional[IndexBarResponseBar] = None
165
+ r"""OHLC bar data for the requested time period"""
166
+
167
+ index: Optional[IndexBarResponseIndex] = None
168
+ r"""Index metadata and identification"""
169
+
170
+ @model_serializer(mode="wrap")
171
+ def serialize_model(self, handler):
172
+ optional_fields = set(["bar", "index"])
173
+ serialized = handler(self)
174
+ m = {}
175
+
176
+ for n, f in type(self).model_fields.items():
177
+ k = f.alias or n
178
+ val = serialized.get(k, serialized.get(n))
179
+
180
+ if val != UNSET_SENTINEL:
181
+ if val is not None or k not in optional_fields:
182
+ m[k] = val
183
+
184
+ return m
185
+
186
+
187
+ try:
188
+ IndexBarResponseBar.model_rebuild()
189
+ except NameError:
190
+ pass
191
+ try:
192
+ IndexBarResponseIndex.model_rebuild()
193
+ except NameError:
194
+ pass
@@ -0,0 +1,123 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 35d9dcbf1826
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 IndexBarsResponseBarTypedDict(TypedDict):
13
+ close: NotRequired[float]
14
+ r"""Closing index value for the bar period"""
15
+ end_date: NotRequired[str]
16
+ r"""Bar end date in MM/DD/YYYY format"""
17
+ end_time: NotRequired[str]
18
+ r"""Bar end time in HH:MM AM/PM format"""
19
+ high: NotRequired[float]
20
+ r"""Highest index value during the bar period"""
21
+ low: NotRequired[float]
22
+ r"""Lowest index value during the bar period"""
23
+ open: NotRequired[float]
24
+ r"""Opening index value for the bar period"""
25
+ start_date: NotRequired[str]
26
+ r"""Bar start date in MM/DD/YYYY format"""
27
+ start_time: NotRequired[str]
28
+ r"""Bar start time in HH:MM AM/PM format"""
29
+ volume: NotRequired[int]
30
+ r"""Trading volume during the bar period"""
31
+
32
+
33
+ class IndexBarsResponseBar(BaseModel):
34
+ close: Optional[float] = None
35
+ r"""Closing index value for the bar period"""
36
+
37
+ end_date: Annotated[Optional[str], pydantic.Field(alias="endDate")] = None
38
+ r"""Bar end date in MM/DD/YYYY format"""
39
+
40
+ end_time: Annotated[Optional[str], pydantic.Field(alias="endTime")] = None
41
+ r"""Bar end time in HH:MM AM/PM format"""
42
+
43
+ high: Optional[float] = None
44
+ r"""Highest index value during the bar period"""
45
+
46
+ low: Optional[float] = None
47
+ r"""Lowest index value during the bar period"""
48
+
49
+ open: Optional[float] = None
50
+ r"""Opening index value for the bar period"""
51
+
52
+ start_date: Annotated[Optional[str], pydantic.Field(alias="startDate")] = None
53
+ r"""Bar start date in MM/DD/YYYY format"""
54
+
55
+ start_time: Annotated[Optional[str], pydantic.Field(alias="startTime")] = None
56
+ r"""Bar start time in HH:MM AM/PM format"""
57
+
58
+ volume: Optional[int] = None
59
+ r"""Trading volume during the bar period"""
60
+
61
+ @model_serializer(mode="wrap")
62
+ def serialize_model(self, handler):
63
+ optional_fields = set(
64
+ [
65
+ "close",
66
+ "endDate",
67
+ "endTime",
68
+ "high",
69
+ "low",
70
+ "open",
71
+ "startDate",
72
+ "startTime",
73
+ "volume",
74
+ ]
75
+ )
76
+ serialized = handler(self)
77
+ m = {}
78
+
79
+ for n, f in type(self).model_fields.items():
80
+ k = f.alias or n
81
+ val = serialized.get(k, serialized.get(n))
82
+
83
+ if val != UNSET_SENTINEL:
84
+ if val is not None or k not in optional_fields:
85
+ m[k] = val
86
+
87
+ return m
88
+
89
+
90
+ class IndexBarsResponseTypedDict(TypedDict):
91
+ r"""Response containing OHLC bars for an index."""
92
+
93
+ bars: NotRequired[List[IndexBarsResponseBarTypedDict]]
94
+ r"""Array of index OHLC bars"""
95
+
96
+
97
+ class IndexBarsResponse(BaseModel):
98
+ r"""Response containing OHLC bars for an index."""
99
+
100
+ bars: Optional[List[IndexBarsResponseBar]] = None
101
+ r"""Array of index OHLC bars"""
102
+
103
+ @model_serializer(mode="wrap")
104
+ def serialize_model(self, handler):
105
+ optional_fields = set(["bars"])
106
+ serialized = handler(self)
107
+ m = {}
108
+
109
+ for n, f in type(self).model_fields.items():
110
+ k = f.alias or n
111
+ val = serialized.get(k, serialized.get(n))
112
+
113
+ if val != UNSET_SENTINEL:
114
+ if val is not None or k not in optional_fields:
115
+ m[k] = val
116
+
117
+ return m
118
+
119
+
120
+ try:
121
+ IndexBarsResponseBar.model_rebuild()
122
+ except NameError:
123
+ pass