finance_dev 0.9.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (486) hide show
  1. finance_dev/__init__.py +18 -0
  2. finance_dev/_hooks/__init__.py +7 -0
  3. finance_dev/_hooks/clientcredentials.py +319 -0
  4. finance_dev/_hooks/oauth2scopes.py +50 -0
  5. finance_dev/_hooks/registration.py +13 -0
  6. finance_dev/_hooks/sdkhooks.py +82 -0
  7. finance_dev/_hooks/types.py +125 -0
  8. finance_dev/_version.py +16 -0
  9. finance_dev/accounts.py +797 -0
  10. finance_dev/alternativedata.py +4830 -0
  11. finance_dev/analytics.py +3757 -0
  12. finance_dev/basesdk.py +393 -0
  13. finance_dev/calendar.py +1523 -0
  14. finance_dev/chart.py +1881 -0
  15. finance_dev/company.py +1105 -0
  16. finance_dev/corporateactions.py +1795 -0
  17. finance_dev/economy.py +1153 -0
  18. finance_dev/errors/__init__.py +94 -0
  19. finance_dev/errors/apierror.py +41 -0
  20. finance_dev/errors/authenticationerrorenvelope.py +43 -0
  21. finance_dev/errors/badrequest.py +34 -0
  22. finance_dev/errors/errorenvelope.py +42 -0
  23. finance_dev/errors/errorresponse.py +45 -0
  24. finance_dev/errors/financedevapierror.py +31 -0
  25. finance_dev/errors/forbidden.py +34 -0
  26. finance_dev/errors/internalservererror.py +35 -0
  27. finance_dev/errors/no_response_error.py +18 -0
  28. finance_dev/errors/notfound.py +34 -0
  29. finance_dev/errors/orderhistorybadrequest.py +35 -0
  30. finance_dev/errors/predorderserrorenvelope.py +42 -0
  31. finance_dev/errors/responsevalidationerror.py +28 -0
  32. finance_dev/errors/unauthorized.py +34 -0
  33. finance_dev/estimates.py +1906 -0
  34. finance_dev/etf.py +1108 -0
  35. finance_dev/filings.py +586 -0
  36. finance_dev/financials.py +4079 -0
  37. finance_dev/history.py +477 -0
  38. finance_dev/httpclient.py +126 -0
  39. finance_dev/indices.py +2308 -0
  40. finance_dev/logos.py +692 -0
  41. finance_dev/market.py +1825 -0
  42. finance_dev/markets.py +952 -0
  43. finance_dev/models/__init__.py +4568 -0
  44. finance_dev/models/accountbalancev2.py +340 -0
  45. finance_dev/models/accountitem.py +78 -0
  46. finance_dev/models/accountposition.py +147 -0
  47. finance_dev/models/aggregatetechnicalindicatorsresponse.py +192 -0
  48. finance_dev/models/analystinsightitem.py +161 -0
  49. finance_dev/models/analystinsightsresponse.py +39 -0
  50. finance_dev/models/apperror.py +123 -0
  51. finance_dev/models/authenticationerrordetail.py +58 -0
  52. finance_dev/models/bankbranchesresponse.py +96 -0
  53. finance_dev/models/basicfinancials.py +243 -0
  54. finance_dev/models/bullbearanalysisresponse.py +150 -0
  55. finance_dev/models/cancelorderop.py +40 -0
  56. finance_dev/models/cancelordrequest_union.py +287 -0
  57. finance_dev/models/cancelordresponse.py +115 -0
  58. finance_dev/models/cashflowstatement.py +290 -0
  59. finance_dev/models/cashflowstatementsresponse.py +61 -0
  60. finance_dev/models/chartbars.py +111 -0
  61. finance_dev/models/chartconfig.py +81 -0
  62. finance_dev/models/chartresolution.py +46 -0
  63. finance_dev/models/companyesgresponse.py +408 -0
  64. finance_dev/models/companyexecutive.py +70 -0
  65. finance_dev/models/companyexecutiveresponse.py +39 -0
  66. finance_dev/models/companypeersresponse.py +38 -0
  67. finance_dev/models/companypresentationresponse.py +96 -0
  68. finance_dev/models/companyprofile.py +255 -0
  69. finance_dev/models/conferencecallsresponse.py +169 -0
  70. finance_dev/models/congressionaltradingresponse.py +138 -0
  71. finance_dev/models/covid19uscasesresponse.py +79 -0
  72. finance_dev/models/createconfigwatchlistop.py +40 -0
  73. finance_dev/models/createwatchlistrequest.py +43 -0
  74. finance_dev/models/dailymarketsummaryresponse.py +73 -0
  75. finance_dev/models/deleteconfigwatchlistbyidop.py +53 -0
  76. finance_dev/models/dividenditem.py +125 -0
  77. finance_dev/models/dividendsresponse.py +61 -0
  78. finance_dev/models/earningrelease.py +291 -0
  79. finance_dev/models/earningscallliveresponse.py +103 -0
  80. finance_dev/models/earningsqualityscoreresponse.py +140 -0
  81. finance_dev/models/earningssurprisesresponse.py +125 -0
  82. finance_dev/models/ebitdaestimatesresponse.py +176 -0
  83. finance_dev/models/ebitestimatesresponse.py +176 -0
  84. finance_dev/models/economicscalendarevent.py +160 -0
  85. finance_dev/models/economicsindicator.py +87 -0
  86. finance_dev/models/epsestimatesresponse.py +176 -0
  87. finance_dev/models/equitydetailsdto.py +569 -0
  88. finance_dev/models/errorcode.py +48 -0
  89. finance_dev/models/etblistresponse.py +43 -0
  90. finance_dev/models/etbsearchrequest.py +21 -0
  91. finance_dev/models/etbsearchresponse.py +43 -0
  92. finance_dev/models/etfcountryallocationresponse.py +113 -0
  93. finance_dev/models/etfholdingsresponse.py +163 -0
  94. finance_dev/models/etfprofileresponse.py +234 -0
  95. finance_dev/models/etfsectorallocationresponse.py +113 -0
  96. finance_dev/models/exchangecode.py +90 -0
  97. finance_dev/models/fdaadvisorycommitteecalendarresponse.py +88 -0
  98. finance_dev/models/filingsimilarityrecord.py +115 -0
  99. finance_dev/models/filingssimilarityindexdatawrapper.py +52 -0
  100. finance_dev/models/filingssimilarityindexresponse.py +42 -0
  101. finance_dev/models/financialratiosresponse.py +252 -0
  102. finance_dev/models/financialsreporteddatawrapper.py +49 -0
  103. finance_dev/models/financialsreportedresponse.py +42 -0
  104. finance_dev/models/financialsrevenuebreakdowndatawrapper.py +49 -0
  105. finance_dev/models/financialsrevenuebreakdownresponse.py +42 -0
  106. finance_dev/models/financialsstatementsdatawrapper.py +44 -0
  107. finance_dev/models/financialsstatementsresponse.py +42 -0
  108. finance_dev/models/financialstatement.py +171 -0
  109. finance_dev/models/financialstatementtype.py +14 -0
  110. finance_dev/models/getaccountbalanceop.py +53 -0
  111. finance_dev/models/getaccountpositionsop.py +53 -0
  112. finance_dev/models/getaccountsresponse.py +22 -0
  113. finance_dev/models/getaggregatetechnicalindicatorsop.py +94 -0
  114. finance_dev/models/getanalystinsightsop.py +164 -0
  115. finance_dev/models/getbankbranchesop.py +53 -0
  116. finance_dev/models/getbaseeventop.py +87 -0
  117. finance_dev/models/getbullbearanalysisop.py +91 -0
  118. finance_dev/models/getcashflowstatementsop.py +564 -0
  119. finance_dev/models/getchartconfigop.py +40 -0
  120. finance_dev/models/getcharthistoryop.py +122 -0
  121. finance_dev/models/getcharttimeop.py +39 -0
  122. finance_dev/models/getcompanyesgop.py +53 -0
  123. finance_dev/models/getcompanyexecutivesop.py +56 -0
  124. finance_dev/models/getcompanymetricsop.py +68 -0
  125. finance_dev/models/getcompanypeersop.py +53 -0
  126. finance_dev/models/getcompanypresentationop.py +56 -0
  127. finance_dev/models/getcompanyprofileop.py +86 -0
  128. finance_dev/models/getconferencecallsop.py +111 -0
  129. finance_dev/models/getconfigwatchlistbyidop.py +53 -0
  130. finance_dev/models/getconfigwatchlistsop.py +40 -0
  131. finance_dev/models/getcongressionaltradingop.py +73 -0
  132. finance_dev/models/getcovid19uscasesop.py +43 -0
  133. finance_dev/models/getdailymarketsummaryop.py +92 -0
  134. finance_dev/models/getdividendsop.py +294 -0
  135. finance_dev/models/getearningscalendarop.py +87 -0
  136. finance_dev/models/getearningscallliveop.py +91 -0
  137. finance_dev/models/getearningsqualityscoreop.py +81 -0
  138. finance_dev/models/getearningssurprisesop.py +80 -0
  139. finance_dev/models/getebitdaestimatesop.py +91 -0
  140. finance_dev/models/getebitestimatesop.py +88 -0
  141. finance_dev/models/geteconomicscalendarop.py +92 -0
  142. finance_dev/models/geteconomicscalendarresponse.py +56 -0
  143. finance_dev/models/getepsestimatesop.py +88 -0
  144. finance_dev/models/getequitydetailsop.py +56 -0
  145. finance_dev/models/getequitydetailsresponse.py +45 -0
  146. finance_dev/models/getetblistop.py +40 -0
  147. finance_dev/models/getetfcountryallocationop.py +80 -0
  148. finance_dev/models/getetfholdingsop.py +96 -0
  149. finance_dev/models/getetfprofileop.py +77 -0
  150. finance_dev/models/getetfsectorallocationop.py +80 -0
  151. finance_dev/models/geteventcontractsop.py +87 -0
  152. finance_dev/models/getfdaadvisorycommitteecalendarop.py +47 -0
  153. finance_dev/models/getfilingssimilarityindexop.py +102 -0
  154. finance_dev/models/getfinancialratiosop.py +612 -0
  155. finance_dev/models/getfinancialstatementsop.py +117 -0
  156. finance_dev/models/getfundownershipop.py +77 -0
  157. finance_dev/models/gethistoricaldataop.py +61 -0
  158. finance_dev/models/gethistoricalesgop.py +53 -0
  159. finance_dev/models/gethistorybatchop.py +74 -0
  160. finance_dev/models/gethistoryop.py +123 -0
  161. finance_dev/models/getincomestatementsop.py +564 -0
  162. finance_dev/models/getindexbarop.py +140 -0
  163. finance_dev/models/getindexbarsop.py +149 -0
  164. finance_dev/models/getindexchartbarsop.py +178 -0
  165. finance_dev/models/getindexrealtimevaluesop.py +94 -0
  166. finance_dev/models/getinflationexpectationsop.py +157 -0
  167. finance_dev/models/getinflationop.py +154 -0
  168. finance_dev/models/getinsidertransactionsop.py +90 -0
  169. finance_dev/models/getinstitutionalownershipop.py +99 -0
  170. finance_dev/models/getinstitutionalportfolioop.py +75 -0
  171. finance_dev/models/getinvestmentthemeop.py +68 -0
  172. finance_dev/models/getipocalendarop.py +63 -0
  173. finance_dev/models/getlobbyingop.py +70 -0
  174. finance_dev/models/getmarketbreadthop.py +40 -0
  175. finance_dev/models/getmarketholidaysop.py +65 -0
  176. finance_dev/models/getmarketstatusop.py +65 -0
  177. finance_dev/models/getmergersandacquisitionsop.py +113 -0
  178. finance_dev/models/getnetinflowop.py +40 -0
  179. finance_dev/models/getnewsbyidop.py +73 -0
  180. finance_dev/models/getnewsop.py +98 -0
  181. finance_dev/models/getnewssentimentop.py +53 -0
  182. finance_dev/models/getoptionchainsnapshotop.py +244 -0
  183. finance_dev/models/getoptioncontractsnapshotop.py +69 -0
  184. finance_dev/models/getoptiondetailsop.py +56 -0
  185. finance_dev/models/getoptiondetailsresponse.py +45 -0
  186. finance_dev/models/getoptionlasttradeop.py +56 -0
  187. finance_dev/models/getoptionopencloseop.py +66 -0
  188. finance_dev/models/getoptionpreviousdayop.py +56 -0
  189. finance_dev/models/getoptionquotesop.py +177 -0
  190. finance_dev/models/getoptionsactivityop.py +111 -0
  191. finance_dev/models/getoptionsetfstopvolumeop.py +70 -0
  192. finance_dev/models/getoptionsstockstopgainersop.py +70 -0
  193. finance_dev/models/getoptionsstockstopvolumeop.py +70 -0
  194. finance_dev/models/getoptionsunusualactivityop.py +100 -0
  195. finance_dev/models/getoptiontradesop.py +177 -0
  196. finance_dev/models/getordersv2response.py +66 -0
  197. finance_dev/models/getownershipdataop.py +77 -0
  198. finance_dev/models/getpositionsresponse.py +39 -0
  199. finance_dev/models/getpredictionorderop.py +88 -0
  200. finance_dev/models/getpricetargetop.py +53 -0
  201. finance_dev/models/getquotesop.py +53 -0
  202. finance_dev/models/getratingsop.py +164 -0
  203. finance_dev/models/getratingsresponse.py +39 -0
  204. finance_dev/models/getreportedfinancialsop.py +127 -0
  205. finance_dev/models/getrevenuebreakdownop.py +85 -0
  206. finance_dev/models/getrevenueestimatesop.py +91 -0
  207. finance_dev/models/getsecfilingsop.py +113 -0
  208. finance_dev/models/getsectortickersop.py +124 -0
  209. finance_dev/models/getsectorwisechangeop.py +84 -0
  210. finance_dev/models/getshortinterestop.py +334 -0
  211. finance_dev/models/getshortvolumeop.py +333 -0
  212. finance_dev/models/getsocialsentimentop.py +90 -0
  213. finance_dev/models/getspinoffsop.py +112 -0
  214. finance_dev/models/getstockaggregatesop.py +174 -0
  215. finance_dev/models/getstocklastquoteop.py +56 -0
  216. finance_dev/models/getstocklasttradeop.py +56 -0
  217. finance_dev/models/getstockopencloseop.py +90 -0
  218. finance_dev/models/getstockpreviousdayop.py +80 -0
  219. finance_dev/models/getstockquotesop.py +177 -0
  220. finance_dev/models/getstocksnapshotsop.py +82 -0
  221. finance_dev/models/getstocksplitsop.py +243 -0
  222. finance_dev/models/getstocktradesop.py +177 -0
  223. finance_dev/models/getsupplychainop.py +53 -0
  224. finance_dev/models/getsupportresistancelevelsop.py +90 -0
  225. finance_dev/models/getsymbolinfoop.py +53 -0
  226. finance_dev/models/gettechnicalindicatorop.py +172 -0
  227. finance_dev/models/gettechnicalpatternsop.py +88 -0
  228. finance_dev/models/gettenderoffersop.py +112 -0
  229. finance_dev/models/gettickhistoryop.py +104 -0
  230. finance_dev/models/gettopgainersop.py +78 -0
  231. finance_dev/models/gettoplosersop.py +78 -0
  232. finance_dev/models/gettopmostactiveop.py +78 -0
  233. finance_dev/models/gettranscriptop.py +53 -0
  234. finance_dev/models/gettreasuryyieldsop.py +157 -0
  235. finance_dev/models/getunifiedsnapshotop.py +223 -0
  236. finance_dev/models/getupgradesdowngradesop.py +91 -0
  237. finance_dev/models/getusaspendingop.py +70 -0
  238. finance_dev/models/getuseraccountsop.py +40 -0
  239. finance_dev/models/getusptopatentsop.py +70 -0
  240. finance_dev/models/getvisaapplicationsop.py +73 -0
  241. finance_dev/models/historicalesgresponse.py +439 -0
  242. finance_dev/models/httpmetadata.py +24 -0
  243. finance_dev/models/incomestatement.py +296 -0
  244. finance_dev/models/incomestatementsresponse.py +61 -0
  245. finance_dev/models/indexbarresponse.py +194 -0
  246. finance_dev/models/indexbarsresponse.py +123 -0
  247. finance_dev/models/indexchartbarsresponse.py +213 -0
  248. finance_dev/models/indexgroupsresponse.py +78 -0
  249. finance_dev/models/indexlistresponse.py +95 -0
  250. finance_dev/models/indexsearchresponse.py +93 -0
  251. finance_dev/models/indicesbygroupresponse.py +93 -0
  252. finance_dev/models/indicesidentifiertype.py +28 -0
  253. finance_dev/models/indicesrealtimeindexinfo.py +67 -0
  254. finance_dev/models/indicesrealtimeindexvalue.py +157 -0
  255. finance_dev/models/indicesrealtimevaluesitem.py +80 -0
  256. finance_dev/models/indicesrealtimevaluesresponse.py +42 -0
  257. finance_dev/models/inflationexpectationsresponse.py +140 -0
  258. finance_dev/models/inflationresponse.py +132 -0
  259. finance_dev/models/insidertransaction.py +97 -0
  260. finance_dev/models/insidertransactionsresponse.py +39 -0
  261. finance_dev/models/institutionalholding.py +77 -0
  262. finance_dev/models/institutionalownershipresponse.py +39 -0
  263. finance_dev/models/institutionalportfolioresponse.py +39 -0
  264. finance_dev/models/investmentthemeid.py +35 -0
  265. finance_dev/models/investmentthemeresponse.py +80 -0
  266. finance_dev/models/ipocalendarresponse.py +39 -0
  267. finance_dev/models/ipoitem.py +93 -0
  268. finance_dev/models/listactiveordersop.py +87 -0
  269. finance_dev/models/listcategoriesop.py +79 -0
  270. finance_dev/models/listindexgroupsop.py +40 -0
  271. finance_dev/models/listindicesbygroupop.py +58 -0
  272. finance_dev/models/listindicesop.py +91 -0
  273. finance_dev/models/listoptioncontractsop.py +66 -0
  274. finance_dev/models/listoptionexpirydatesop.py +56 -0
  275. finance_dev/models/listorderhistoryop.py +139 -0
  276. finance_dev/models/listpredictionordersop.py +134 -0
  277. finance_dev/models/listtranscriptsop.py +53 -0
  278. finance_dev/models/lobbyingresponse.py +166 -0
  279. finance_dev/models/logosearchresponse.py +152 -0
  280. finance_dev/models/logosyncresponse.py +277 -0
  281. finance_dev/models/marketbreadth.py +97 -0
  282. finance_dev/models/marketbreadthresponse.py +44 -0
  283. finance_dev/models/marketholiday.py +56 -0
  284. finance_dev/models/marketholidayresponse.py +39 -0
  285. finance_dev/models/marketstatus.py +67 -0
  286. finance_dev/models/mergersandacquisitionsresponse.py +186 -0
  287. finance_dev/models/metricseriespoint.py +43 -0
  288. finance_dev/models/netinflow.py +81 -0
  289. finance_dev/models/netinflowresponse.py +44 -0
  290. finance_dev/models/newsitem.py +102 -0
  291. finance_dev/models/newslistresponse.py +128 -0
  292. finance_dev/models/newssentimentresponse.py +176 -0
  293. finance_dev/models/newstypeenum.py +16 -0
  294. finance_dev/models/optionchainsnapshotresponse.py +64 -0
  295. finance_dev/models/optioncontractsnapshotresponse.py +64 -0
  296. finance_dev/models/optioncontractsnapshotrow.py +164 -0
  297. finance_dev/models/optioncontractsresponse.py +131 -0
  298. finance_dev/models/optiondetailsdto.py +72 -0
  299. finance_dev/models/optionexpirydatesresponse.py +53 -0
  300. finance_dev/models/optionlasttraderesponse.py +169 -0
  301. finance_dev/models/optionopencloseresponse.py +97 -0
  302. finance_dev/models/optionpreviousdayresponse.py +89 -0
  303. finance_dev/models/optionquotesresponse.py +138 -0
  304. finance_dev/models/optionsactivityresponse.py +265 -0
  305. finance_dev/models/optionsnapshotcontractdetails.py +85 -0
  306. finance_dev/models/optionsnapshotdaybar.py +107 -0
  307. finance_dev/models/optionsnapshotgreeks.py +67 -0
  308. finance_dev/models/optionsnapshotlastquote.py +116 -0
  309. finance_dev/models/optionsnapshotlasttrade.py +102 -0
  310. finance_dev/models/optionsnapshotunderlying.py +86 -0
  311. finance_dev/models/optionsscreeneritem.py +151 -0
  312. finance_dev/models/optionsunusualactivityresponse.py +62 -0
  313. finance_dev/models/optionsunusualactivitytrade.py +103 -0
  314. finance_dev/models/optiontradesresponse.py +132 -0
  315. finance_dev/models/orderrequesttimeinforceenum.py +29 -0
  316. finance_dev/models/ordersideenum.py +20 -0
  317. finance_dev/models/ordertypeenum.py +20 -0
  318. finance_dev/models/ordleg.py +162 -0
  319. finance_dev/models/ordresponse.py +202 -0
  320. finance_dev/models/ownershipdataresponse.py +39 -0
  321. finance_dev/models/ownershiprecord.py +74 -0
  322. finance_dev/models/placeorderop.py +40 -0
  323. finance_dev/models/placeordrequest_union.py +335 -0
  324. finance_dev/models/placepredictionorderop.py +114 -0
  325. finance_dev/models/predmdbaseevent.py +62 -0
  326. finance_dev/models/predmdbaseeventhit.py +53 -0
  327. finance_dev/models/predmdbaseeventsearchresult.py +46 -0
  328. finance_dev/models/predmdbaseeventwithevents.py +32 -0
  329. finance_dev/models/predmdbatchhistoryrequest.py +16 -0
  330. finance_dev/models/predmdbatchhistoryresponse.py +16 -0
  331. finance_dev/models/predmdcategory.py +48 -0
  332. finance_dev/models/predmdcontract.py +177 -0
  333. finance_dev/models/predmdcontracthit.py +157 -0
  334. finance_dev/models/predmdcontractsearchresult.py +46 -0
  335. finance_dev/models/predmdevent.py +136 -0
  336. finance_dev/models/predmdeventhit.py +73 -0
  337. finance_dev/models/predmdeventsearchresult.py +46 -0
  338. finance_dev/models/predmdeventwithcontracts.py +22 -0
  339. finance_dev/models/predmdhistoryrequest.py +59 -0
  340. finance_dev/models/predmdhistoryresponse.py +53 -0
  341. finance_dev/models/predmdtick.py +53 -0
  342. finance_dev/models/predordersapperror.py +78 -0
  343. finance_dev/models/predordersorder.py +267 -0
  344. finance_dev/models/predordersorderdetail.py +26 -0
  345. finance_dev/models/predordersorderpage.py +45 -0
  346. finance_dev/models/predordersorderreport.py +88 -0
  347. finance_dev/models/predordersplaceorderrequest.py +159 -0
  348. finance_dev/models/previeworderop.py +40 -0
  349. finance_dev/models/previeworderresponse.py +127 -0
  350. finance_dev/models/pricetargetresponse.py +89 -0
  351. finance_dev/models/quotedata.py +49 -0
  352. finance_dev/models/quotesresponse.py +62 -0
  353. finance_dev/models/quotevalues.py +114 -0
  354. finance_dev/models/rating.py +193 -0
  355. finance_dev/models/ratingsaccuracy.py +242 -0
  356. finance_dev/models/replaceconfigwatchlistsop.py +40 -0
  357. finance_dev/models/replaceorderop.py +40 -0
  358. finance_dev/models/replaceordrequest_union.py +367 -0
  359. finance_dev/models/replaceordresponse.py +144 -0
  360. finance_dev/models/reportedbsitem.py +53 -0
  361. finance_dev/models/reportedfiling.py +110 -0
  362. finance_dev/models/reportedreport.py +39 -0
  363. finance_dev/models/reportingfrequency.py +16 -0
  364. finance_dev/models/revenuebreakdownaxis.py +52 -0
  365. finance_dev/models/revenuebreakdowndatapoint.py +58 -0
  366. finance_dev/models/revenuebreakdownentry.py +51 -0
  367. finance_dev/models/revenuebreakdowninner.py +75 -0
  368. finance_dev/models/revenueestimatesresponse.py +176 -0
  369. finance_dev/models/screenclause.py +70 -0
  370. finance_dev/models/screengroup.py +75 -0
  371. finance_dev/models/searchetbsymbolsop.py +40 -0
  372. finance_dev/models/searchindicesop.py +55 -0
  373. finance_dev/models/searchlogosop.py +158 -0
  374. finance_dev/models/searchmarketsymbolsop.py +80 -0
  375. finance_dev/models/searchop.py +232 -0
  376. finance_dev/models/searchsymbolitem.py +76 -0
  377. finance_dev/models/searchsymbolresponseitem.py +71 -0
  378. finance_dev/models/searchsymbolsop.py +77 -0
  379. finance_dev/models/secfiling.py +91 -0
  380. finance_dev/models/secfilingsresponse.py +39 -0
  381. finance_dev/models/sectoravgchange.py +50 -0
  382. finance_dev/models/security.py +59 -0
  383. finance_dev/models/securitytypeenum.py +16 -0
  384. finance_dev/models/shortinterestresponse.py +126 -0
  385. finance_dev/models/shortvolumeresponse.py +198 -0
  386. finance_dev/models/socialsentimentresponse.py +124 -0
  387. finance_dev/models/sortorderenum.py +13 -0
  388. finance_dev/models/spinoffsresponse.py +136 -0
  389. finance_dev/models/stockaggregatesresponse.py +92 -0
  390. finance_dev/models/stocklastquoteresponse.py +175 -0
  391. finance_dev/models/stocklasttraderesponse.py +169 -0
  392. finance_dev/models/stockohlcbar.py +85 -0
  393. finance_dev/models/stockopencloseresponse.py +109 -0
  394. finance_dev/models/stockpreviousdayresponse.py +86 -0
  395. finance_dev/models/stockquotesresponse.py +170 -0
  396. finance_dev/models/stockscreenerop.py +144 -0
  397. finance_dev/models/stockscreenerrequest.py +131 -0
  398. finance_dev/models/stockscreenerresponse.py +197 -0
  399. finance_dev/models/stocksnapshotsresponse.py +454 -0
  400. finance_dev/models/stocksplitsresponse.py +144 -0
  401. finance_dev/models/stocktradesresponse.py +164 -0
  402. finance_dev/models/supplychainresponse.py +158 -0
  403. finance_dev/models/supportresistancelevelsresponse.py +68 -0
  404. finance_dev/models/symboldetails.py +119 -0
  405. finance_dev/models/symbolerror.py +43 -0
  406. finance_dev/models/symbolinfo.py +183 -0
  407. finance_dev/models/synclogosop.py +146 -0
  408. finance_dev/models/technicalindicatorresponse.py +43 -0
  409. finance_dev/models/technicalindicatortype.py +21 -0
  410. finance_dev/models/technicalpatternsresponse.py +249 -0
  411. finance_dev/models/tenderofferidentifiertype.py +26 -0
  412. finance_dev/models/tenderoffersresponse.py +548 -0
  413. finance_dev/models/tickchartbars.py +104 -0
  414. finance_dev/models/tickresolution.py +20 -0
  415. finance_dev/models/timeinforceenum.py +26 -0
  416. finance_dev/models/tradeorderlegv2.py +164 -0
  417. finance_dev/models/tradeorderv2.py +434 -0
  418. finance_dev/models/transcriptresponse.py +162 -0
  419. finance_dev/models/transcriptsresponse.py +89 -0
  420. finance_dev/models/treasuryyieldsresponse.py +160 -0
  421. finance_dev/models/unifiedsnapshotresponse.py +308 -0
  422. finance_dev/models/updateconfigwatchlistbyidop.py +65 -0
  423. finance_dev/models/updatewatchlistrequest_union.py +134 -0
  424. finance_dev/models/upgradesdowngradesresponse.py +98 -0
  425. finance_dev/models/usaspendingresponse.py +222 -0
  426. finance_dev/models/usptopatentsresponse.py +134 -0
  427. finance_dev/models/visaapplicationsresponse.py +228 -0
  428. finance_dev/models/watchlist.py +68 -0
  429. finance_dev/models/watchlistrequest.py +43 -0
  430. finance_dev/models/watchlistresponse.py +44 -0
  431. finance_dev/news_sdk.py +829 -0
  432. finance_dev/options.py +3443 -0
  433. finance_dev/orders.py +1907 -0
  434. finance_dev/ownership.py +1386 -0
  435. finance_dev/predictions.py +29 -0
  436. finance_dev/predictions_orders.py +852 -0
  437. finance_dev/py.typed +1 -0
  438. finance_dev/sdk.py +347 -0
  439. finance_dev/sdkconfiguration.py +50 -0
  440. finance_dev/signals.py +338 -0
  441. finance_dev/stocks.py +3131 -0
  442. finance_dev/technicalanalysis_sdk.py +1137 -0
  443. finance_dev/types/__init__.py +25 -0
  444. finance_dev/types/base64fileinput.py +44 -0
  445. finance_dev/types/basemodel.py +78 -0
  446. finance_dev/utils/__init__.py +181 -0
  447. finance_dev/utils/annotations.py +80 -0
  448. finance_dev/utils/datetimes.py +42 -0
  449. finance_dev/utils/dynamic_imports.py +55 -0
  450. finance_dev/utils/enums.py +135 -0
  451. finance_dev/utils/eventstreaming.py +327 -0
  452. finance_dev/utils/forms.py +240 -0
  453. finance_dev/utils/headers.py +137 -0
  454. finance_dev/utils/logger.py +23 -0
  455. finance_dev/utils/metadata.py +120 -0
  456. finance_dev/utils/queryparams.py +218 -0
  457. finance_dev/utils/requestbodies.py +68 -0
  458. finance_dev/utils/retries.py +373 -0
  459. finance_dev/utils/security.py +199 -0
  460. finance_dev/utils/serializers.py +327 -0
  461. finance_dev/utils/unmarshal_json_response.py +39 -0
  462. finance_dev/utils/url.py +155 -0
  463. finance_dev/utils/values.py +143 -0
  464. finance_dev/watchlist_sdk.py +1583 -0
  465. finance_dev/websocket/__init__.py +57 -0
  466. finance_dev/websocket/account.py +5 -0
  467. finance_dev/websocket/auth.py +124 -0
  468. finance_dev/websocket/chart.py +5 -0
  469. finance_dev/websocket/codec.py +66 -0
  470. finance_dev/websocket/config.py +52 -0
  471. finance_dev/websocket/errors.py +54 -0
  472. finance_dev/websocket/market.py +5 -0
  473. finance_dev/websocket/models/__init__.py +52 -0
  474. finance_dev/websocket/models/account.py +60 -0
  475. finance_dev/websocket/models/chart.py +44 -0
  476. finance_dev/websocket/models/common.py +85 -0
  477. finance_dev/websocket/models/market.py +113 -0
  478. finance_dev/websocket/resources.py +327 -0
  479. finance_dev/websocket/sdk.py +13 -0
  480. finance_dev/websocket/transport/async_connection.py +493 -0
  481. finance_dev/websocket/transport/base.py +78 -0
  482. finance_dev/websocket/transport/sync_connection.py +470 -0
  483. finance_dev-0.9.0.dist-info/METADATA +913 -0
  484. finance_dev-0.9.0.dist-info/RECORD +486 -0
  485. finance_dev-0.9.0.dist-info/WHEEL +5 -0
  486. finance_dev-0.9.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,164 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: b6bcd50acf16
3
+
4
+ from __future__ import annotations
5
+ from .getratingsresponse import GetRatingsResponse, GetRatingsResponseTypedDict
6
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
7
+ from datetime import date
8
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
9
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
10
+ import pydantic
11
+ from pydantic import model_serializer
12
+ from typing import Callable, Optional
13
+ from typing_extensions import Annotated, NotRequired, TypedDict
14
+
15
+
16
+ class GetRatingsRequestTypedDict(TypedDict):
17
+ tickers: NotRequired[str]
18
+ r"""Comma-separated list of ticker symbols to filter by"""
19
+ page: NotRequired[int]
20
+ r"""Page number for pagination (0-based)"""
21
+ page_size: NotRequired[int]
22
+ r"""Number of results per page. Use this to control pagination size in list views."""
23
+ date_: NotRequired[date]
24
+ r"""Filter by specific date (YYYY-MM-DD)"""
25
+ date_from: NotRequired[date]
26
+ r"""Start date for date range (YYYY-MM-DD)"""
27
+ date_to: NotRequired[date]
28
+ r"""End date for date range (YYYY-MM-DD)"""
29
+ importance: NotRequired[int]
30
+ r"""Minimum importance level to include. Use higher values to filter for more market-moving events or ratings."""
31
+ action: NotRequired[str]
32
+ r"""Rating action filter. Use it to return only upgrades, downgrades, initiations, or other supported action types."""
33
+ analyst_id: NotRequired[str]
34
+ r"""Comma-separated analyst IDs. Use this to limit insight results to specific analysts. to filter by"""
35
+ firm_id: NotRequired[str]
36
+ r"""Comma-separated firm IDs to filter by"""
37
+
38
+
39
+ class GetRatingsRequest(BaseModel):
40
+ tickers: Annotated[
41
+ Optional[str],
42
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
43
+ ] = None
44
+ r"""Comma-separated list of ticker symbols to filter by"""
45
+
46
+ page: Annotated[
47
+ Optional[int],
48
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
49
+ ] = None
50
+ r"""Page number for pagination (0-based)"""
51
+
52
+ page_size: Annotated[
53
+ Optional[int],
54
+ pydantic.Field(alias="pageSize"),
55
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
56
+ ] = None
57
+ r"""Number of results per page. Use this to control pagination size in list views."""
58
+
59
+ date_: Annotated[
60
+ Optional[date],
61
+ pydantic.Field(alias="date"),
62
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
63
+ ] = None
64
+ r"""Filter by specific date (YYYY-MM-DD)"""
65
+
66
+ date_from: Annotated[
67
+ Optional[date],
68
+ pydantic.Field(alias="dateFrom"),
69
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
70
+ ] = None
71
+ r"""Start date for date range (YYYY-MM-DD)"""
72
+
73
+ date_to: Annotated[
74
+ Optional[date],
75
+ pydantic.Field(alias="dateTo"),
76
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
77
+ ] = None
78
+ r"""End date for date range (YYYY-MM-DD)"""
79
+
80
+ importance: Annotated[
81
+ Optional[int],
82
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
83
+ ] = None
84
+ r"""Minimum importance level to include. Use higher values to filter for more market-moving events or ratings."""
85
+
86
+ action: Annotated[
87
+ Optional[str],
88
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
89
+ ] = None
90
+ r"""Rating action filter. Use it to return only upgrades, downgrades, initiations, or other supported action types."""
91
+
92
+ analyst_id: Annotated[
93
+ Optional[str],
94
+ pydantic.Field(alias="analystId"),
95
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
96
+ ] = None
97
+ r"""Comma-separated analyst IDs. Use this to limit insight results to specific analysts. to filter by"""
98
+
99
+ firm_id: Annotated[
100
+ Optional[str],
101
+ pydantic.Field(alias="firmId"),
102
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
103
+ ] = None
104
+ r"""Comma-separated firm IDs to filter by"""
105
+
106
+ @model_serializer(mode="wrap")
107
+ def serialize_model(self, handler):
108
+ optional_fields = set(
109
+ [
110
+ "tickers",
111
+ "page",
112
+ "pageSize",
113
+ "date",
114
+ "dateFrom",
115
+ "dateTo",
116
+ "importance",
117
+ "action",
118
+ "analystId",
119
+ "firmId",
120
+ ]
121
+ )
122
+ serialized = handler(self)
123
+ m = {}
124
+
125
+ for n, f in type(self).model_fields.items():
126
+ k = f.alias or n
127
+ val = serialized.get(k, serialized.get(n))
128
+
129
+ if val != UNSET_SENTINEL:
130
+ if val is not None or k not in optional_fields:
131
+ m[k] = val
132
+
133
+ return m
134
+
135
+
136
+ class GetRatingsResponseResponseTypedDict(TypedDict):
137
+ http_meta: HTTPMetadataTypedDict
138
+ get_ratings_response: NotRequired[GetRatingsResponseTypedDict]
139
+ r"""Analyst ratings. Response has a ratings array; each item may include id, date, time, ticker, exchange, name, currency, action_pt, action_company, rating_current, rating_prior, pt_current, pt_current_adjusted, pt_prior, pt_prior_adjusted, analyst, analyst_id, analyst_name, importance, updated. Some fields may be absent when empty."""
140
+
141
+
142
+ class GetRatingsResponseResponse(BaseModel):
143
+ next: Callable[[], Optional[GetRatingsResponseResponse]]
144
+
145
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
146
+
147
+ get_ratings_response: Optional[GetRatingsResponse] = None
148
+ r"""Analyst ratings. Response has a ratings array; each item may include id, date, time, ticker, exchange, name, currency, action_pt, action_company, rating_current, rating_prior, pt_current, pt_current_adjusted, pt_prior, pt_prior_adjusted, analyst, analyst_id, analyst_name, importance, updated. Some fields may be absent when empty."""
149
+
150
+ @model_serializer(mode="wrap")
151
+ def serialize_model(self, handler):
152
+ optional_fields = set(["GetRatingsResponse"])
153
+ serialized = handler(self)
154
+ m = {}
155
+
156
+ for n, f in type(self).model_fields.items():
157
+ k = f.alias or n
158
+ val = serialized.get(k, serialized.get(n))
159
+
160
+ if val != UNSET_SENTINEL:
161
+ if val is not None or k not in optional_fields:
162
+ m[k] = val
163
+
164
+ return m
@@ -0,0 +1,39 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 3d850711bfe7
3
+
4
+ from __future__ import annotations
5
+ from .rating import Rating, RatingTypedDict
6
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
7
+ from pydantic import model_serializer
8
+ from typing import List, Optional
9
+ from typing_extensions import NotRequired, TypedDict
10
+
11
+
12
+ class GetRatingsResponseTypedDict(TypedDict):
13
+ r"""Response for GET /v1/analytics/ratings. Only non-empty fields appear in each rating; notes and ratings_accuracy are omitted when empty."""
14
+
15
+ ratings: NotRequired[List[RatingTypedDict]]
16
+ r"""Array of analyst rating objects"""
17
+
18
+
19
+ class GetRatingsResponse(BaseModel):
20
+ r"""Response for GET /v1/analytics/ratings. Only non-empty fields appear in each rating; notes and ratings_accuracy are omitted when empty."""
21
+
22
+ ratings: Optional[List[Rating]] = None
23
+ r"""Array of analyst rating objects"""
24
+
25
+ @model_serializer(mode="wrap")
26
+ def serialize_model(self, handler):
27
+ optional_fields = set(["ratings"])
28
+ serialized = handler(self)
29
+ m = {}
30
+
31
+ for n, f in type(self).model_fields.items():
32
+ k = f.alias or n
33
+ val = serialized.get(k, serialized.get(n))
34
+
35
+ if val != UNSET_SENTINEL:
36
+ if val is not None or k not in optional_fields:
37
+ m[k] = val
38
+
39
+ return m
@@ -0,0 +1,127 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 775ecb18def3
3
+
4
+ from __future__ import annotations
5
+ from .financialsreportedresponse import (
6
+ FinancialsReportedResponse,
7
+ FinancialsReportedResponseTypedDict,
8
+ )
9
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
10
+ from .reportingfrequency import ReportingFrequency
11
+ from datetime import date
12
+ from finance_dev import models
13
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
14
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
15
+ import pydantic
16
+ from pydantic import field_serializer, model_serializer
17
+ from typing import Optional
18
+ from typing_extensions import Annotated, NotRequired, TypedDict
19
+
20
+
21
+ class GetReportedFinancialsRequestTypedDict(TypedDict):
22
+ symbol: NotRequired[str]
23
+ r"""Stock symbol, such as AAPL. Use it to narrow results to one company. Required when both `cik` and `accessNumber` are omitted."""
24
+ cik: NotRequired[str]
25
+ r"""SEC CIK. Optional when `symbol` or `accessNumber` is provided."""
26
+ access_number: NotRequired[str]
27
+ r"""SEC access number. Optional when `symbol` or `cik` is provided."""
28
+ freq: NotRequired[ReportingFrequency]
29
+ r"""Optional reporting frequency filter. Use it to limit results to annual or quarterly reports."""
30
+ from_: NotRequired[date]
31
+ r"""Optional start date in YYYY-MM-DD format. Use it to begin the research window."""
32
+ to: NotRequired[date]
33
+ r"""Optional end date in YYYY-MM-DD format. Use it to end the research window."""
34
+
35
+
36
+ class GetReportedFinancialsRequest(BaseModel):
37
+ symbol: Annotated[
38
+ Optional[str],
39
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
40
+ ] = None
41
+ r"""Stock symbol, such as AAPL. Use it to narrow results to one company. Required when both `cik` and `accessNumber` are omitted."""
42
+
43
+ cik: Annotated[
44
+ Optional[str],
45
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
46
+ ] = None
47
+ r"""SEC CIK. Optional when `symbol` or `accessNumber` is provided."""
48
+
49
+ access_number: Annotated[
50
+ Optional[str],
51
+ pydantic.Field(alias="accessNumber"),
52
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
53
+ ] = None
54
+ r"""SEC access number. Optional when `symbol` or `cik` is provided."""
55
+
56
+ freq: Annotated[
57
+ Optional[ReportingFrequency],
58
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
59
+ ] = None
60
+ r"""Optional reporting frequency filter. Use it to limit results to annual or quarterly reports."""
61
+
62
+ from_: Annotated[
63
+ Optional[date],
64
+ pydantic.Field(alias="from"),
65
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
66
+ ] = None
67
+ r"""Optional start date in YYYY-MM-DD format. Use it to begin the research window."""
68
+
69
+ to: Annotated[
70
+ Optional[date],
71
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
72
+ ] = None
73
+ r"""Optional end date in YYYY-MM-DD format. Use it to end the research window."""
74
+
75
+ @field_serializer("freq")
76
+ def serialize_freq(self, value):
77
+ if isinstance(value, str):
78
+ try:
79
+ return models.ReportingFrequency(value)
80
+ except ValueError:
81
+ return value
82
+ return value
83
+
84
+ @model_serializer(mode="wrap")
85
+ def serialize_model(self, handler):
86
+ optional_fields = set(["symbol", "cik", "accessNumber", "freq", "from", "to"])
87
+ serialized = handler(self)
88
+ m = {}
89
+
90
+ for n, f in type(self).model_fields.items():
91
+ k = f.alias or n
92
+ val = serialized.get(k, serialized.get(n))
93
+
94
+ if val != UNSET_SENTINEL:
95
+ if val is not None or k not in optional_fields:
96
+ m[k] = val
97
+
98
+ return m
99
+
100
+
101
+ class GetReportedFinancialsResponseTypedDict(TypedDict):
102
+ http_meta: HTTPMetadataTypedDict
103
+ financials_reported_response: NotRequired[FinancialsReportedResponseTypedDict]
104
+ r"""Reported financials."""
105
+
106
+
107
+ class GetReportedFinancialsResponse(BaseModel):
108
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
109
+
110
+ financials_reported_response: Optional[FinancialsReportedResponse] = None
111
+ r"""Reported financials."""
112
+
113
+ @model_serializer(mode="wrap")
114
+ def serialize_model(self, handler):
115
+ optional_fields = set(["FinancialsReportedResponse"])
116
+ serialized = handler(self)
117
+ m = {}
118
+
119
+ for n, f in type(self).model_fields.items():
120
+ k = f.alias or n
121
+ val = serialized.get(k, serialized.get(n))
122
+
123
+ if val != UNSET_SENTINEL:
124
+ if val is not None or k not in optional_fields:
125
+ m[k] = val
126
+
127
+ return m
@@ -0,0 +1,85 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 84d32b0b9b75
3
+
4
+ from __future__ import annotations
5
+ from .financialsrevenuebreakdownresponse import (
6
+ FinancialsRevenueBreakdownResponse,
7
+ FinancialsRevenueBreakdownResponseTypedDict,
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 GetRevenueBreakdownRequestTypedDict(TypedDict):
19
+ symbol: NotRequired[str]
20
+ r"""Stock ticker symbol to research, such as AAPL. Required when `cik` is omitted."""
21
+ cik: NotRequired[str]
22
+ r"""SEC CIK. Optional when `symbol` is provided."""
23
+
24
+
25
+ class GetRevenueBreakdownRequest(BaseModel):
26
+ symbol: Annotated[
27
+ Optional[str],
28
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
29
+ ] = None
30
+ r"""Stock ticker symbol to research, such as AAPL. Required when `cik` is omitted."""
31
+
32
+ cik: Annotated[
33
+ Optional[str],
34
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
35
+ ] = None
36
+ r"""SEC CIK. Optional when `symbol` is provided."""
37
+
38
+ @model_serializer(mode="wrap")
39
+ def serialize_model(self, handler):
40
+ optional_fields = set(["symbol", "cik"])
41
+ serialized = handler(self)
42
+ m = {}
43
+
44
+ for n, f in type(self).model_fields.items():
45
+ k = f.alias or n
46
+ val = serialized.get(k, serialized.get(n))
47
+
48
+ if val != UNSET_SENTINEL:
49
+ if val is not None or k not in optional_fields:
50
+ m[k] = val
51
+
52
+ return m
53
+
54
+
55
+ class GetRevenueBreakdownResponseTypedDict(TypedDict):
56
+ http_meta: HTTPMetadataTypedDict
57
+ financials_revenue_breakdown_response: NotRequired[
58
+ FinancialsRevenueBreakdownResponseTypedDict
59
+ ]
60
+ r"""Revenue breakdown data."""
61
+
62
+
63
+ class GetRevenueBreakdownResponse(BaseModel):
64
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
65
+
66
+ financials_revenue_breakdown_response: Optional[
67
+ FinancialsRevenueBreakdownResponse
68
+ ] = None
69
+ r"""Revenue breakdown data."""
70
+
71
+ @model_serializer(mode="wrap")
72
+ def serialize_model(self, handler):
73
+ optional_fields = set(["FinancialsRevenueBreakdownResponse"])
74
+ serialized = handler(self)
75
+ m = {}
76
+
77
+ for n, f in type(self).model_fields.items():
78
+ k = f.alias or n
79
+ val = serialized.get(k, serialized.get(n))
80
+
81
+ if val != UNSET_SENTINEL:
82
+ if val is not None or k not in optional_fields:
83
+ m[k] = val
84
+
85
+ return m
@@ -0,0 +1,91 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 4d7fc89b4158
3
+
4
+ from __future__ import annotations
5
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
6
+ from .reportingfrequency import ReportingFrequency
7
+ from .revenueestimatesresponse import (
8
+ RevenueEstimatesResponse,
9
+ RevenueEstimatesResponseTypedDict,
10
+ )
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 GetRevenueEstimatesRequestTypedDict(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 GetRevenueEstimatesRequest(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 GetRevenueEstimatesResponseTypedDict(TypedDict):
66
+ http_meta: HTTPMetadataTypedDict
67
+ revenue_estimates_response: NotRequired[RevenueEstimatesResponseTypedDict]
68
+ r"""Successful response"""
69
+
70
+
71
+ class GetRevenueEstimatesResponse(BaseModel):
72
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
73
+
74
+ revenue_estimates_response: Optional[RevenueEstimatesResponse] = None
75
+ r"""Successful response"""
76
+
77
+ @model_serializer(mode="wrap")
78
+ def serialize_model(self, handler):
79
+ optional_fields = set(["RevenueEstimatesResponse"])
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,113 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 0c33d2160755
3
+
4
+ from __future__ import annotations
5
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
6
+ from .secfilingsresponse import SecFilingsResponse, SecFilingsResponseTypedDict
7
+ from datetime import date
8
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
9
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
10
+ import pydantic
11
+ from pydantic import model_serializer
12
+ from typing import Optional
13
+ from typing_extensions import Annotated, NotRequired, TypedDict
14
+
15
+
16
+ class GetSecFilingsRequestTypedDict(TypedDict):
17
+ symbol: NotRequired[str]
18
+ r"""Stock symbol (optional if cik provided)"""
19
+ cik: NotRequired[str]
20
+ r"""Central Index Key (optional if symbol provided)"""
21
+ access_number: NotRequired[str]
22
+ r"""SEC access number to filter by specific filing"""
23
+ form: NotRequired[str]
24
+ r"""Form type (e.g. 10-K, 10-Q, 8-K, DEF 14A)"""
25
+ from_: NotRequired[date]
26
+ r"""Start date in YYYY-MM-DD format. Enter the first date to include in the research window."""
27
+ to: NotRequired[date]
28
+ r"""End date in YYYY-MM-DD format. Enter the last date to include in the research window."""
29
+
30
+
31
+ class GetSecFilingsRequest(BaseModel):
32
+ symbol: Annotated[
33
+ Optional[str],
34
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
35
+ ] = None
36
+ r"""Stock symbol (optional if cik provided)"""
37
+
38
+ cik: Annotated[
39
+ Optional[str],
40
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
41
+ ] = None
42
+ r"""Central Index Key (optional if symbol provided)"""
43
+
44
+ access_number: Annotated[
45
+ Optional[str],
46
+ pydantic.Field(alias="accessNumber"),
47
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
48
+ ] = None
49
+ r"""SEC access number to filter by specific filing"""
50
+
51
+ form: Annotated[
52
+ Optional[str],
53
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
54
+ ] = None
55
+ r"""Form type (e.g. 10-K, 10-Q, 8-K, DEF 14A)"""
56
+
57
+ from_: Annotated[
58
+ Optional[date],
59
+ pydantic.Field(alias="from"),
60
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
61
+ ] = None
62
+ r"""Start date in YYYY-MM-DD format. Enter the first date to include in the research window."""
63
+
64
+ to: Annotated[
65
+ Optional[date],
66
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
67
+ ] = None
68
+ r"""End date in YYYY-MM-DD format. Enter the last date to include in the research window."""
69
+
70
+ @model_serializer(mode="wrap")
71
+ def serialize_model(self, handler):
72
+ optional_fields = set(["symbol", "cik", "accessNumber", "form", "from", "to"])
73
+ serialized = handler(self)
74
+ m = {}
75
+
76
+ for n, f in type(self).model_fields.items():
77
+ k = f.alias or n
78
+ val = serialized.get(k, serialized.get(n))
79
+
80
+ if val != UNSET_SENTINEL:
81
+ if val is not None or k not in optional_fields:
82
+ m[k] = val
83
+
84
+ return m
85
+
86
+
87
+ class GetSecFilingsResponseTypedDict(TypedDict):
88
+ http_meta: HTTPMetadataTypedDict
89
+ sec_filings_response: NotRequired[SecFilingsResponseTypedDict]
90
+ r"""SEC filings."""
91
+
92
+
93
+ class GetSecFilingsResponse(BaseModel):
94
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
95
+
96
+ sec_filings_response: Optional[SecFilingsResponse] = None
97
+ r"""SEC filings."""
98
+
99
+ @model_serializer(mode="wrap")
100
+ def serialize_model(self, handler):
101
+ optional_fields = set(["SecFilingsResponse"])
102
+ serialized = handler(self)
103
+ m = {}
104
+
105
+ for n, f in type(self).model_fields.items():
106
+ k = f.alias or n
107
+ val = serialized.get(k, serialized.get(n))
108
+
109
+ if val != UNSET_SENTINEL:
110
+ if val is not None or k not in optional_fields:
111
+ m[k] = val
112
+
113
+ return m