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,91 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: ef4e0c2a97a1
3
+
4
+ from __future__ import annotations
5
+ from .earningscallliveresponse import (
6
+ EarningsCallLiveResponse,
7
+ EarningsCallLiveResponseTypedDict,
8
+ )
9
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
10
+ from datetime import date
11
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
12
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
13
+ import pydantic
14
+ from pydantic import model_serializer
15
+ from typing import Optional
16
+ from typing_extensions import Annotated, NotRequired, TypedDict
17
+
18
+
19
+ class GetEarningsCallLiveRequestTypedDict(TypedDict):
20
+ from_: NotRequired[date]
21
+ r"""Start of the date window, inclusive. Format: `YYYY-MM-DD`."""
22
+ to: NotRequired[date]
23
+ r"""End of the date window, inclusive. Format: `YYYY-MM-DD`."""
24
+ symbol: NotRequired[str]
25
+ r"""Stock ticker to query. Send the plain uppercase symbol, e.g. `AAPL`."""
26
+
27
+
28
+ class GetEarningsCallLiveRequest(BaseModel):
29
+ from_: Annotated[
30
+ Optional[date],
31
+ pydantic.Field(alias="from"),
32
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
33
+ ] = None
34
+ r"""Start of the date window, inclusive. Format: `YYYY-MM-DD`."""
35
+
36
+ to: Annotated[
37
+ Optional[date],
38
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
39
+ ] = None
40
+ r"""End of the date window, inclusive. Format: `YYYY-MM-DD`."""
41
+
42
+ symbol: Annotated[
43
+ Optional[str],
44
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
45
+ ] = None
46
+ r"""Stock ticker to query. Send the plain uppercase symbol, e.g. `AAPL`."""
47
+
48
+ @model_serializer(mode="wrap")
49
+ def serialize_model(self, handler):
50
+ optional_fields = set(["from", "to", "symbol"])
51
+ serialized = handler(self)
52
+ m = {}
53
+
54
+ for n, f in type(self).model_fields.items():
55
+ k = f.alias or n
56
+ val = serialized.get(k, serialized.get(n))
57
+
58
+ if val != UNSET_SENTINEL:
59
+ if val is not None or k not in optional_fields:
60
+ m[k] = val
61
+
62
+ return m
63
+
64
+
65
+ class GetEarningsCallLiveResponseTypedDict(TypedDict):
66
+ http_meta: HTTPMetadataTypedDict
67
+ earnings_call_live_response: NotRequired[EarningsCallLiveResponseTypedDict]
68
+ r"""Earnings call live data."""
69
+
70
+
71
+ class GetEarningsCallLiveResponse(BaseModel):
72
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
73
+
74
+ earnings_call_live_response: Optional[EarningsCallLiveResponse] = None
75
+ r"""Earnings call live data."""
76
+
77
+ @model_serializer(mode="wrap")
78
+ def serialize_model(self, handler):
79
+ optional_fields = set(["EarningsCallLiveResponse"])
80
+ serialized = handler(self)
81
+ m = {}
82
+
83
+ for n, f in type(self).model_fields.items():
84
+ k = f.alias or n
85
+ val = serialized.get(k, serialized.get(n))
86
+
87
+ if val != UNSET_SENTINEL:
88
+ if val is not None or k not in optional_fields:
89
+ m[k] = val
90
+
91
+ return m
@@ -0,0 +1,81 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: fe4e32852472
3
+
4
+ from __future__ import annotations
5
+ from .earningsqualityscoreresponse import (
6
+ EarningsQualityScoreResponse,
7
+ EarningsQualityScoreResponseTypedDict,
8
+ )
9
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
10
+ from .reportingfrequency import ReportingFrequency
11
+ from finance_dev import models
12
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
13
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
14
+ import pydantic
15
+ from pydantic import field_serializer, model_serializer
16
+ from typing import Optional
17
+ from typing_extensions import Annotated, NotRequired, TypedDict
18
+
19
+
20
+ class GetEarningsQualityScoreRequestTypedDict(TypedDict):
21
+ symbol: str
22
+ r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`."""
23
+ freq: ReportingFrequency
24
+ r"""How often the score is computed. Allowed values:
25
+ - `annual` — one score per fiscal year (broad trends).
26
+ - `quarterly` — one score per quarter (closer to recent reporting).
27
+ """
28
+
29
+
30
+ class GetEarningsQualityScoreRequest(BaseModel):
31
+ symbol: Annotated[
32
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
33
+ ]
34
+ r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`."""
35
+
36
+ freq: Annotated[
37
+ ReportingFrequency,
38
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
39
+ ]
40
+ r"""How often the score is computed. Allowed values:
41
+ - `annual` — one score per fiscal year (broad trends).
42
+ - `quarterly` — one score per quarter (closer to recent reporting).
43
+ """
44
+
45
+ @field_serializer("freq")
46
+ def serialize_freq(self, value):
47
+ if isinstance(value, str):
48
+ try:
49
+ return models.ReportingFrequency(value)
50
+ except ValueError:
51
+ return value
52
+ return value
53
+
54
+
55
+ class GetEarningsQualityScoreResponseTypedDict(TypedDict):
56
+ http_meta: HTTPMetadataTypedDict
57
+ earnings_quality_score_response: NotRequired[EarningsQualityScoreResponseTypedDict]
58
+ r"""Earnings quality score data."""
59
+
60
+
61
+ class GetEarningsQualityScoreResponse(BaseModel):
62
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
63
+
64
+ earnings_quality_score_response: Optional[EarningsQualityScoreResponse] = None
65
+ r"""Earnings quality score data."""
66
+
67
+ @model_serializer(mode="wrap")
68
+ def serialize_model(self, handler):
69
+ optional_fields = set(["EarningsQualityScoreResponse"])
70
+ serialized = handler(self)
71
+ m = {}
72
+
73
+ for n, f in type(self).model_fields.items():
74
+ k = f.alias or n
75
+ val = serialized.get(k, serialized.get(n))
76
+
77
+ if val != UNSET_SENTINEL:
78
+ if val is not None or k not in optional_fields:
79
+ m[k] = val
80
+
81
+ return m
@@ -0,0 +1,80 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: e8887a50d232
3
+
4
+ from __future__ import annotations
5
+ from .earningssurprisesresponse import (
6
+ EarningsSurprisesResponse,
7
+ EarningsSurprisesResponseTypedDict,
8
+ )
9
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
10
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
11
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
12
+ import pydantic
13
+ from pydantic import model_serializer
14
+ from typing import Optional
15
+ from typing_extensions import Annotated, NotRequired, TypedDict
16
+
17
+
18
+ class GetEarningsSurprisesRequestTypedDict(TypedDict):
19
+ symbol: str
20
+ r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`, `TSLA`."""
21
+ limit: NotRequired[int]
22
+ r"""(Optional) Number of results to return"""
23
+
24
+
25
+ class GetEarningsSurprisesRequest(BaseModel):
26
+ symbol: Annotated[
27
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
28
+ ]
29
+ r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`, `TSLA`."""
30
+
31
+ limit: Annotated[
32
+ Optional[int],
33
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
34
+ ] = None
35
+ r"""(Optional) Number of results to return"""
36
+
37
+ @model_serializer(mode="wrap")
38
+ def serialize_model(self, handler):
39
+ optional_fields = set(["limit"])
40
+ serialized = handler(self)
41
+ m = {}
42
+
43
+ for n, f in type(self).model_fields.items():
44
+ k = f.alias or n
45
+ val = serialized.get(k, serialized.get(n))
46
+
47
+ if val != UNSET_SENTINEL:
48
+ if val is not None or k not in optional_fields:
49
+ m[k] = val
50
+
51
+ return m
52
+
53
+
54
+ class GetEarningsSurprisesResponseTypedDict(TypedDict):
55
+ http_meta: HTTPMetadataTypedDict
56
+ earnings_surprises_response: NotRequired[EarningsSurprisesResponseTypedDict]
57
+ r"""Successful response"""
58
+
59
+
60
+ class GetEarningsSurprisesResponse(BaseModel):
61
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
62
+
63
+ earnings_surprises_response: Optional[EarningsSurprisesResponse] = None
64
+ r"""Successful response"""
65
+
66
+ @model_serializer(mode="wrap")
67
+ def serialize_model(self, handler):
68
+ optional_fields = set(["EarningsSurprisesResponse"])
69
+ serialized = handler(self)
70
+ m = {}
71
+
72
+ for n, f in type(self).model_fields.items():
73
+ k = f.alias or n
74
+ val = serialized.get(k, serialized.get(n))
75
+
76
+ if val != UNSET_SENTINEL:
77
+ if val is not None or k not in optional_fields:
78
+ m[k] = val
79
+
80
+ return m
@@ -0,0 +1,91 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: db29650d239f
3
+
4
+ from __future__ import annotations
5
+ from .ebitdaestimatesresponse import (
6
+ EbitdaEstimatesResponse,
7
+ EbitdaEstimatesResponseTypedDict,
8
+ )
9
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
10
+ from .reportingfrequency import ReportingFrequency
11
+ from finance_dev import models
12
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
13
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
14
+ import pydantic
15
+ from pydantic import field_serializer, model_serializer
16
+ from typing import Optional
17
+ from typing_extensions import Annotated, NotRequired, TypedDict
18
+
19
+
20
+ class GetEbitdaEstimatesRequestTypedDict(TypedDict):
21
+ symbol: str
22
+ r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`, `TSLA`."""
23
+ freq: NotRequired[ReportingFrequency]
24
+ r"""(Optional) Frequency: annual, quarterly"""
25
+
26
+
27
+ class GetEbitdaEstimatesRequest(BaseModel):
28
+ symbol: Annotated[
29
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
30
+ ]
31
+ r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`, `TSLA`."""
32
+
33
+ freq: Annotated[
34
+ Optional[ReportingFrequency],
35
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
36
+ ] = None
37
+ r"""(Optional) Frequency: annual, quarterly"""
38
+
39
+ @field_serializer("freq")
40
+ def serialize_freq(self, value):
41
+ if isinstance(value, str):
42
+ try:
43
+ return models.ReportingFrequency(value)
44
+ except ValueError:
45
+ return value
46
+ return value
47
+
48
+ @model_serializer(mode="wrap")
49
+ def serialize_model(self, handler):
50
+ optional_fields = set(["freq"])
51
+ serialized = handler(self)
52
+ m = {}
53
+
54
+ for n, f in type(self).model_fields.items():
55
+ k = f.alias or n
56
+ val = serialized.get(k, serialized.get(n))
57
+
58
+ if val != UNSET_SENTINEL:
59
+ if val is not None or k not in optional_fields:
60
+ m[k] = val
61
+
62
+ return m
63
+
64
+
65
+ class GetEbitdaEstimatesResponseTypedDict(TypedDict):
66
+ http_meta: HTTPMetadataTypedDict
67
+ ebitda_estimates_response: NotRequired[EbitdaEstimatesResponseTypedDict]
68
+ r"""Successful response"""
69
+
70
+
71
+ class GetEbitdaEstimatesResponse(BaseModel):
72
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
73
+
74
+ ebitda_estimates_response: Optional[EbitdaEstimatesResponse] = None
75
+ r"""Successful response"""
76
+
77
+ @model_serializer(mode="wrap")
78
+ def serialize_model(self, handler):
79
+ optional_fields = set(["EbitdaEstimatesResponse"])
80
+ serialized = handler(self)
81
+ m = {}
82
+
83
+ for n, f in type(self).model_fields.items():
84
+ k = f.alias or n
85
+ val = serialized.get(k, serialized.get(n))
86
+
87
+ if val != UNSET_SENTINEL:
88
+ if val is not None or k not in optional_fields:
89
+ m[k] = val
90
+
91
+ return m
@@ -0,0 +1,88 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 33024049b6d4
3
+
4
+ from __future__ import annotations
5
+ from .ebitestimatesresponse import EbitEstimatesResponse, EbitEstimatesResponseTypedDict
6
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
7
+ from .reportingfrequency import ReportingFrequency
8
+ from finance_dev import models
9
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
10
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
11
+ import pydantic
12
+ from pydantic import field_serializer, model_serializer
13
+ from typing import Optional
14
+ from typing_extensions import Annotated, NotRequired, TypedDict
15
+
16
+
17
+ class GetEbitEstimatesRequestTypedDict(TypedDict):
18
+ symbol: str
19
+ r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`, `TSLA`."""
20
+ freq: NotRequired[ReportingFrequency]
21
+ r"""(Optional) Frequency: annual, quarterly"""
22
+
23
+
24
+ class GetEbitEstimatesRequest(BaseModel):
25
+ symbol: Annotated[
26
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
27
+ ]
28
+ r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`, `TSLA`."""
29
+
30
+ freq: Annotated[
31
+ Optional[ReportingFrequency],
32
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
33
+ ] = None
34
+ r"""(Optional) Frequency: annual, quarterly"""
35
+
36
+ @field_serializer("freq")
37
+ def serialize_freq(self, value):
38
+ if isinstance(value, str):
39
+ try:
40
+ return models.ReportingFrequency(value)
41
+ except ValueError:
42
+ return value
43
+ return value
44
+
45
+ @model_serializer(mode="wrap")
46
+ def serialize_model(self, handler):
47
+ optional_fields = set(["freq"])
48
+ serialized = handler(self)
49
+ m = {}
50
+
51
+ for n, f in type(self).model_fields.items():
52
+ k = f.alias or n
53
+ val = serialized.get(k, serialized.get(n))
54
+
55
+ if val != UNSET_SENTINEL:
56
+ if val is not None or k not in optional_fields:
57
+ m[k] = val
58
+
59
+ return m
60
+
61
+
62
+ class GetEbitEstimatesResponseTypedDict(TypedDict):
63
+ http_meta: HTTPMetadataTypedDict
64
+ ebit_estimates_response: NotRequired[EbitEstimatesResponseTypedDict]
65
+ r"""Successful response"""
66
+
67
+
68
+ class GetEbitEstimatesResponse(BaseModel):
69
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
70
+
71
+ ebit_estimates_response: Optional[EbitEstimatesResponse] = None
72
+ r"""Successful response"""
73
+
74
+ @model_serializer(mode="wrap")
75
+ def serialize_model(self, handler):
76
+ optional_fields = set(["EbitEstimatesResponse"])
77
+ serialized = handler(self)
78
+ m = {}
79
+
80
+ for n, f in type(self).model_fields.items():
81
+ k = f.alias or n
82
+ val = serialized.get(k, serialized.get(n))
83
+
84
+ if val != UNSET_SENTINEL:
85
+ if val is not None or k not in optional_fields:
86
+ m[k] = val
87
+
88
+ return m
@@ -0,0 +1,92 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 70e33970b6f6
3
+
4
+ from __future__ import annotations
5
+ from .geteconomicscalendarresponse import (
6
+ GetEconomicsCalendarResponse,
7
+ GetEconomicsCalendarResponseTypedDict,
8
+ )
9
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
10
+ from datetime import date
11
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
12
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
13
+ import pydantic
14
+ from pydantic import model_serializer
15
+ from typing import Optional
16
+ from typing_extensions import Annotated, NotRequired, TypedDict
17
+
18
+
19
+ class GetEconomicsCalendarRequestTypedDict(TypedDict):
20
+ date_: NotRequired[date]
21
+ r"""Single date in YYYY-MM-DD format. Returns events for that date plus 1 month ahead. Either 'date' or 'from' must be provided."""
22
+ from_: NotRequired[date]
23
+ r"""Start date of range in YYYY-MM-DD format. Must be used with 'to'. Either 'date' or 'from' must be provided."""
24
+ to: NotRequired[date]
25
+ r"""End date of range in YYYY-MM-DD format. Required when 'from' is specified."""
26
+
27
+
28
+ class GetEconomicsCalendarRequest(BaseModel):
29
+ date_: Annotated[
30
+ Optional[date],
31
+ pydantic.Field(alias="date"),
32
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
33
+ ] = None
34
+ r"""Single date in YYYY-MM-DD format. Returns events for that date plus 1 month ahead. Either 'date' or 'from' must be provided."""
35
+
36
+ from_: Annotated[
37
+ Optional[date],
38
+ pydantic.Field(alias="from"),
39
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
40
+ ] = None
41
+ r"""Start date of range in YYYY-MM-DD format. Must be used with 'to'. Either 'date' or 'from' must be provided."""
42
+
43
+ to: Annotated[
44
+ Optional[date],
45
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
46
+ ] = None
47
+ r"""End date of range in YYYY-MM-DD format. Required when 'from' is specified."""
48
+
49
+ @model_serializer(mode="wrap")
50
+ def serialize_model(self, handler):
51
+ optional_fields = set(["date", "from", "to"])
52
+ serialized = handler(self)
53
+ m = {}
54
+
55
+ for n, f in type(self).model_fields.items():
56
+ k = f.alias or n
57
+ val = serialized.get(k, serialized.get(n))
58
+
59
+ if val != UNSET_SENTINEL:
60
+ if val is not None or k not in optional_fields:
61
+ m[k] = val
62
+
63
+ return m
64
+
65
+
66
+ class GetEconomicsCalendarResponseResponseTypedDict(TypedDict):
67
+ http_meta: HTTPMetadataTypedDict
68
+ get_economics_calendar_response: NotRequired[GetEconomicsCalendarResponseTypedDict]
69
+ r"""Economics calendar events retrieved successfully"""
70
+
71
+
72
+ class GetEconomicsCalendarResponseResponse(BaseModel):
73
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
74
+
75
+ get_economics_calendar_response: Optional[GetEconomicsCalendarResponse] = None
76
+ r"""Economics calendar events retrieved successfully"""
77
+
78
+ @model_serializer(mode="wrap")
79
+ def serialize_model(self, handler):
80
+ optional_fields = set(["GetEconomicsCalendarResponse"])
81
+ serialized = handler(self)
82
+ m = {}
83
+
84
+ for n, f in type(self).model_fields.items():
85
+ k = f.alias or n
86
+ val = serialized.get(k, serialized.get(n))
87
+
88
+ if val != UNSET_SENTINEL:
89
+ if val is not None or k not in optional_fields:
90
+ m[k] = val
91
+
92
+ return m
@@ -0,0 +1,56 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 658f9977a93c
3
+
4
+ from __future__ import annotations
5
+ from .economicscalendarevent import (
6
+ EconomicsCalendarEvent,
7
+ EconomicsCalendarEventTypedDict,
8
+ )
9
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
10
+ import pydantic
11
+ from pydantic import model_serializer
12
+ from typing import List, Optional
13
+ from typing_extensions import Annotated, NotRequired, TypedDict
14
+
15
+
16
+ class GetEconomicsCalendarResponseTypedDict(TypedDict):
17
+ r"""Economic calendar response for the requested date. Use it to show macroeconomic events that may affect markets."""
18
+
19
+ events: NotRequired[List[EconomicsCalendarEventTypedDict]]
20
+ r"""List of economic calendar events for the requested date"""
21
+ important_dates: NotRequired[List[str]]
22
+ r"""Optional list of notable dates"""
23
+
24
+
25
+ class GetEconomicsCalendarResponse(BaseModel):
26
+ r"""Economic calendar response for the requested date. Use it to show macroeconomic events that may affect markets."""
27
+
28
+ events: Optional[List[EconomicsCalendarEvent]] = None
29
+ r"""List of economic calendar events for the requested date"""
30
+
31
+ important_dates: Annotated[
32
+ Optional[List[str]], pydantic.Field(alias="importantDates")
33
+ ] = None
34
+ r"""Optional list of notable dates"""
35
+
36
+ @model_serializer(mode="wrap")
37
+ def serialize_model(self, handler):
38
+ optional_fields = set(["events", "importantDates"])
39
+ serialized = handler(self)
40
+ m = {}
41
+
42
+ for n, f in type(self).model_fields.items():
43
+ k = f.alias or n
44
+ val = serialized.get(k, serialized.get(n))
45
+
46
+ if val != UNSET_SENTINEL:
47
+ if val is not None or k not in optional_fields:
48
+ m[k] = val
49
+
50
+ return m
51
+
52
+
53
+ try:
54
+ GetEconomicsCalendarResponse.model_rebuild()
55
+ except NameError:
56
+ pass
@@ -0,0 +1,88 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: b844cf88ae11
3
+
4
+ from __future__ import annotations
5
+ from .epsestimatesresponse import EpsEstimatesResponse, EpsEstimatesResponseTypedDict
6
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
7
+ from .reportingfrequency import ReportingFrequency
8
+ from finance_dev import models
9
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
10
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
11
+ import pydantic
12
+ from pydantic import field_serializer, model_serializer
13
+ from typing import Optional
14
+ from typing_extensions import Annotated, NotRequired, TypedDict
15
+
16
+
17
+ class GetEpsEstimatesRequestTypedDict(TypedDict):
18
+ symbol: str
19
+ r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`, `TSLA`."""
20
+ freq: NotRequired[ReportingFrequency]
21
+ r"""(Optional) Frequency: annual, quarterly"""
22
+
23
+
24
+ class GetEpsEstimatesRequest(BaseModel):
25
+ symbol: Annotated[
26
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
27
+ ]
28
+ r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`, `TSLA`."""
29
+
30
+ freq: Annotated[
31
+ Optional[ReportingFrequency],
32
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
33
+ ] = None
34
+ r"""(Optional) Frequency: annual, quarterly"""
35
+
36
+ @field_serializer("freq")
37
+ def serialize_freq(self, value):
38
+ if isinstance(value, str):
39
+ try:
40
+ return models.ReportingFrequency(value)
41
+ except ValueError:
42
+ return value
43
+ return value
44
+
45
+ @model_serializer(mode="wrap")
46
+ def serialize_model(self, handler):
47
+ optional_fields = set(["freq"])
48
+ serialized = handler(self)
49
+ m = {}
50
+
51
+ for n, f in type(self).model_fields.items():
52
+ k = f.alias or n
53
+ val = serialized.get(k, serialized.get(n))
54
+
55
+ if val != UNSET_SENTINEL:
56
+ if val is not None or k not in optional_fields:
57
+ m[k] = val
58
+
59
+ return m
60
+
61
+
62
+ class GetEpsEstimatesResponseTypedDict(TypedDict):
63
+ http_meta: HTTPMetadataTypedDict
64
+ eps_estimates_response: NotRequired[EpsEstimatesResponseTypedDict]
65
+ r"""Successful response"""
66
+
67
+
68
+ class GetEpsEstimatesResponse(BaseModel):
69
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
70
+
71
+ eps_estimates_response: Optional[EpsEstimatesResponse] = None
72
+ r"""Successful response"""
73
+
74
+ @model_serializer(mode="wrap")
75
+ def serialize_model(self, handler):
76
+ optional_fields = set(["EpsEstimatesResponse"])
77
+ serialized = handler(self)
78
+ m = {}
79
+
80
+ for n, f in type(self).model_fields.items():
81
+ k = f.alias or n
82
+ val = serialized.get(k, serialized.get(n))
83
+
84
+ if val != UNSET_SENTINEL:
85
+ if val is not None or k not in optional_fields:
86
+ m[k] = val
87
+
88
+ return m