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,44 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 42cd6345f01e
3
+
4
+ from __future__ import annotations
5
+ from .marketbreadth import MarketBreadth, MarketBreadthTypedDict
6
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
7
+ from pydantic import model_serializer
8
+ from typing import Optional
9
+ from typing_extensions import NotRequired, TypedDict
10
+
11
+
12
+ class MarketBreadthResponseTypedDict(TypedDict):
13
+ r"""Response envelope for the market breadth endpoint."""
14
+
15
+ data: NotRequired[MarketBreadthTypedDict]
16
+ r"""Market breadth snapshot showing how many symbols are rising, falling, or unchanged. Use it to summarize overall market participation."""
17
+ success: NotRequired[bool]
18
+ r"""Always true on a successful response."""
19
+
20
+
21
+ class MarketBreadthResponse(BaseModel):
22
+ r"""Response envelope for the market breadth endpoint."""
23
+
24
+ data: Optional[MarketBreadth] = None
25
+ r"""Market breadth snapshot showing how many symbols are rising, falling, or unchanged. Use it to summarize overall market participation."""
26
+
27
+ success: Optional[bool] = None
28
+ r"""Always true on a successful response."""
29
+
30
+ @model_serializer(mode="wrap")
31
+ def serialize_model(self, handler):
32
+ optional_fields = set(["data", "success"])
33
+ serialized = handler(self)
34
+ m = {}
35
+
36
+ for n, f in type(self).model_fields.items():
37
+ k = f.alias or n
38
+ val = serialized.get(k, serialized.get(n))
39
+
40
+ if val != UNSET_SENTINEL:
41
+ if val is not None or k not in optional_fields:
42
+ m[k] = val
43
+
44
+ return m
@@ -0,0 +1,56 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: fe877285fa70
3
+
4
+ from __future__ import annotations
5
+ from datetime import date
6
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
7
+ import pydantic
8
+ from pydantic import model_serializer
9
+ from typing import Optional
10
+ from typing_extensions import Annotated, NotRequired, TypedDict
11
+
12
+
13
+ class MarketHolidayTypedDict(TypedDict):
14
+ r"""Market holiday or special trading day."""
15
+
16
+ at_date: NotRequired[date]
17
+ r"""Date of the holiday in YYYY-MM-DD format"""
18
+ event_name: NotRequired[str]
19
+ r"""Name of the holiday or special market event"""
20
+ trading_hour: NotRequired[str]
21
+ r"""Trading hours for the day (e.g., 09:30-13:00 for early close, empty for full closure)"""
22
+
23
+
24
+ class MarketHoliday(BaseModel):
25
+ r"""Market holiday or special trading day."""
26
+
27
+ at_date: Annotated[Optional[date], pydantic.Field(alias="atDate")] = None
28
+ r"""Date of the holiday in YYYY-MM-DD format"""
29
+
30
+ event_name: Annotated[Optional[str], pydantic.Field(alias="eventName")] = None
31
+ r"""Name of the holiday or special market event"""
32
+
33
+ trading_hour: Annotated[Optional[str], pydantic.Field(alias="tradingHour")] = None
34
+ r"""Trading hours for the day (e.g., 09:30-13:00 for early close, empty for full closure)"""
35
+
36
+ @model_serializer(mode="wrap")
37
+ def serialize_model(self, handler):
38
+ optional_fields = set(["atDate", "eventName", "tradingHour"])
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
+ MarketHoliday.model_rebuild()
55
+ except NameError:
56
+ pass
@@ -0,0 +1,39 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: b950ab8a825d
3
+
4
+ from __future__ import annotations
5
+ from .marketholiday import MarketHoliday, MarketHolidayTypedDict
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 MarketHolidayResponseTypedDict(TypedDict):
13
+ r"""Market holidays and special trading days."""
14
+
15
+ holidays: NotRequired[List[MarketHolidayTypedDict]]
16
+ r"""List of market holidays and special trading days"""
17
+
18
+
19
+ class MarketHolidayResponse(BaseModel):
20
+ r"""Market holidays and special trading days."""
21
+
22
+ holidays: Optional[List[MarketHoliday]] = None
23
+ r"""List of market holidays and special trading days"""
24
+
25
+ @model_serializer(mode="wrap")
26
+ def serialize_model(self, handler):
27
+ optional_fields = set(["holidays"])
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,67 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 082a87dffa48
3
+
4
+ from __future__ import annotations
5
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
6
+ import pydantic
7
+ from pydantic import model_serializer
8
+ from typing import Optional
9
+ from typing_extensions import Annotated, NotRequired, TypedDict
10
+
11
+
12
+ class MarketStatusTypedDict(TypedDict):
13
+ r"""Current trading status of a market."""
14
+
15
+ exchange: NotRequired[str]
16
+ r"""Exchange code (e.g., US, TO, L)"""
17
+ is_open: NotRequired[bool]
18
+ r"""Whether the market is currently open for trading"""
19
+ session: NotRequired[str]
20
+ r"""Current trading session (pre-market, regular, after-hours, or empty if closed)"""
21
+ timestamp: NotRequired[int]
22
+ r"""Unix timestamp of the status data"""
23
+ timezone: NotRequired[str]
24
+ r"""Timezone of the exchange (e.g., America/New_York)"""
25
+
26
+
27
+ class MarketStatus(BaseModel):
28
+ r"""Current trading status of a market."""
29
+
30
+ exchange: Optional[str] = None
31
+ r"""Exchange code (e.g., US, TO, L)"""
32
+
33
+ is_open: Annotated[Optional[bool], pydantic.Field(alias="isOpen")] = None
34
+ r"""Whether the market is currently open for trading"""
35
+
36
+ session: Optional[str] = None
37
+ r"""Current trading session (pre-market, regular, after-hours, or empty if closed)"""
38
+
39
+ timestamp: Optional[int] = None
40
+ r"""Unix timestamp of the status data"""
41
+
42
+ timezone: Optional[str] = None
43
+ r"""Timezone of the exchange (e.g., America/New_York)"""
44
+
45
+ @model_serializer(mode="wrap")
46
+ def serialize_model(self, handler):
47
+ optional_fields = set(
48
+ ["exchange", "isOpen", "session", "timestamp", "timezone"]
49
+ )
50
+ serialized = handler(self)
51
+ m = {}
52
+
53
+ for n, f in type(self).model_fields.items():
54
+ k = f.alias or n
55
+ val = serialized.get(k, serialized.get(n))
56
+
57
+ if val != UNSET_SENTINEL:
58
+ if val is not None or k not in optional_fields:
59
+ m[k] = val
60
+
61
+ return m
62
+
63
+
64
+ try:
65
+ MarketStatus.model_rebuild()
66
+ except NameError:
67
+ pass
@@ -0,0 +1,186 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 732b22b2c677
3
+
4
+ from __future__ import annotations
5
+ from datetime import date
6
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
7
+ import pydantic
8
+ from pydantic import model_serializer
9
+ from typing import List, Optional
10
+ from typing_extensions import Annotated, NotRequired, TypedDict
11
+
12
+
13
+ class MergersAcquisitionTypedDict(TypedDict):
14
+ acquirer_exchange: NotRequired[str]
15
+ r"""Exchange of the acquiring company"""
16
+ acquirer_name: NotRequired[str]
17
+ r"""Name of the acquiring company"""
18
+ acquirer_ticker: NotRequired[str]
19
+ r"""Ticker of the acquiring company"""
20
+ currency: NotRequired[str]
21
+ r"""Currency of the deal"""
22
+ date_: NotRequired[date]
23
+ r"""Date of the M&A event"""
24
+ date_expected: NotRequired[str]
25
+ r"""Expected closing date or period supplied by the provider, such as 2026-H2."""
26
+ deal_payment_type: NotRequired[str]
27
+ r"""Payment method (Cash, Stock, Mixed, etc.)"""
28
+ deal_size: NotRequired[str]
29
+ r"""Size of the deal in the specified currency"""
30
+ deal_status: NotRequired[str]
31
+ r"""Current status of the deal (Completed, Pending, etc.)"""
32
+ deal_type: NotRequired[str]
33
+ r"""Type of deal (Acquisition, Merger, etc.)"""
34
+ id: NotRequired[str]
35
+ r"""Unique identifier for the M&A event"""
36
+ importance: NotRequired[int]
37
+ r"""Importance rating of the event"""
38
+ notes: NotRequired[str]
39
+ r"""Additional notes"""
40
+ target_exchange: NotRequired[str]
41
+ r"""Stock exchange where target is traded"""
42
+ target_name: NotRequired[str]
43
+ r"""Name of the target company"""
44
+ target_ticker: NotRequired[str]
45
+ r"""Stock ticker symbol of the target company. Enter the exact ticker, such as AAPL."""
46
+ updated: NotRequired[int]
47
+ r"""Unix timestamp of last update"""
48
+
49
+
50
+ class MergersAcquisition(BaseModel):
51
+ acquirer_exchange: Annotated[
52
+ Optional[str], pydantic.Field(alias="acquirerExchange")
53
+ ] = None
54
+ r"""Exchange of the acquiring company"""
55
+
56
+ acquirer_name: Annotated[Optional[str], pydantic.Field(alias="acquirerName")] = None
57
+ r"""Name of the acquiring company"""
58
+
59
+ acquirer_ticker: Annotated[
60
+ Optional[str], pydantic.Field(alias="acquirerTicker")
61
+ ] = None
62
+ r"""Ticker of the acquiring company"""
63
+
64
+ currency: Optional[str] = None
65
+ r"""Currency of the deal"""
66
+
67
+ date_: Annotated[Optional[date], pydantic.Field(alias="date")] = None
68
+ r"""Date of the M&A event"""
69
+
70
+ date_expected: Annotated[Optional[str], pydantic.Field(alias="dateExpected")] = None
71
+ r"""Expected closing date or period supplied by the provider, such as 2026-H2."""
72
+
73
+ deal_payment_type: Annotated[
74
+ Optional[str], pydantic.Field(alias="dealPaymentType")
75
+ ] = None
76
+ r"""Payment method (Cash, Stock, Mixed, etc.)"""
77
+
78
+ deal_size: Annotated[Optional[str], pydantic.Field(alias="dealSize")] = None
79
+ r"""Size of the deal in the specified currency"""
80
+
81
+ deal_status: Annotated[Optional[str], pydantic.Field(alias="dealStatus")] = None
82
+ r"""Current status of the deal (Completed, Pending, etc.)"""
83
+
84
+ deal_type: Annotated[Optional[str], pydantic.Field(alias="dealType")] = None
85
+ r"""Type of deal (Acquisition, Merger, etc.)"""
86
+
87
+ id: Optional[str] = None
88
+ r"""Unique identifier for the M&A event"""
89
+
90
+ importance: Optional[int] = None
91
+ r"""Importance rating of the event"""
92
+
93
+ notes: Optional[str] = None
94
+ r"""Additional notes"""
95
+
96
+ target_exchange: Annotated[
97
+ Optional[str], pydantic.Field(alias="targetExchange")
98
+ ] = None
99
+ r"""Stock exchange where target is traded"""
100
+
101
+ target_name: Annotated[Optional[str], pydantic.Field(alias="targetName")] = None
102
+ r"""Name of the target company"""
103
+
104
+ target_ticker: Annotated[Optional[str], pydantic.Field(alias="targetTicker")] = None
105
+ r"""Stock ticker symbol of the target company. Enter the exact ticker, such as AAPL."""
106
+
107
+ updated: Optional[int] = None
108
+ r"""Unix timestamp of last update"""
109
+
110
+ @model_serializer(mode="wrap")
111
+ def serialize_model(self, handler):
112
+ optional_fields = set(
113
+ [
114
+ "acquirerExchange",
115
+ "acquirerName",
116
+ "acquirerTicker",
117
+ "currency",
118
+ "date",
119
+ "dateExpected",
120
+ "dealPaymentType",
121
+ "dealSize",
122
+ "dealStatus",
123
+ "dealType",
124
+ "id",
125
+ "importance",
126
+ "notes",
127
+ "targetExchange",
128
+ "targetName",
129
+ "targetTicker",
130
+ "updated",
131
+ ]
132
+ )
133
+ serialized = handler(self)
134
+ m = {}
135
+
136
+ for n, f in type(self).model_fields.items():
137
+ k = f.alias or n
138
+ val = serialized.get(k, serialized.get(n))
139
+
140
+ if val != UNSET_SENTINEL:
141
+ if val is not None or k not in optional_fields:
142
+ m[k] = val
143
+
144
+ return m
145
+
146
+
147
+ class MergersAndAcquisitionsResponseTypedDict(TypedDict):
148
+ r"""Response containing mergers and acquisitions calendar events."""
149
+
150
+ mergers_acquisitions: NotRequired[List[MergersAcquisitionTypedDict]]
151
+ r"""Array of merger and acquisition events"""
152
+
153
+
154
+ class MergersAndAcquisitionsResponse(BaseModel):
155
+ r"""Response containing mergers and acquisitions calendar events."""
156
+
157
+ mergers_acquisitions: Annotated[
158
+ Optional[List[MergersAcquisition]], pydantic.Field(alias="mergersAcquisitions")
159
+ ] = None
160
+ r"""Array of merger and acquisition events"""
161
+
162
+ @model_serializer(mode="wrap")
163
+ def serialize_model(self, handler):
164
+ optional_fields = set(["mergersAcquisitions"])
165
+ serialized = handler(self)
166
+ m = {}
167
+
168
+ for n, f in type(self).model_fields.items():
169
+ k = f.alias or n
170
+ val = serialized.get(k, serialized.get(n))
171
+
172
+ if val != UNSET_SENTINEL:
173
+ if val is not None or k not in optional_fields:
174
+ m[k] = val
175
+
176
+ return m
177
+
178
+
179
+ try:
180
+ MergersAcquisition.model_rebuild()
181
+ except NameError:
182
+ pass
183
+ try:
184
+ MergersAndAcquisitionsResponse.model_rebuild()
185
+ except NameError:
186
+ pass
@@ -0,0 +1,43 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: ba34893a9005
3
+
4
+ from __future__ import annotations
5
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
6
+ from pydantic import model_serializer
7
+ from typing import Optional
8
+ from typing_extensions import NotRequired, TypedDict
9
+
10
+
11
+ class MetricSeriesPointTypedDict(TypedDict):
12
+ r"""Single data point of a company metric time series."""
13
+
14
+ period: NotRequired[str]
15
+ r"""Time period for the metric value (e.g., 2023-12-31)"""
16
+ v: NotRequired[float]
17
+ r"""Metric value for the period"""
18
+
19
+
20
+ class MetricSeriesPoint(BaseModel):
21
+ r"""Single data point of a company metric time series."""
22
+
23
+ period: Optional[str] = None
24
+ r"""Time period for the metric value (e.g., 2023-12-31)"""
25
+
26
+ v: Optional[float] = None
27
+ r"""Metric value for the period"""
28
+
29
+ @model_serializer(mode="wrap")
30
+ def serialize_model(self, handler):
31
+ optional_fields = set(["period", "v"])
32
+ serialized = handler(self)
33
+ m = {}
34
+
35
+ for n, f in type(self).model_fields.items():
36
+ k = f.alias or n
37
+ val = serialized.get(k, serialized.get(n))
38
+
39
+ if val != UNSET_SENTINEL:
40
+ if val is not None or k not in optional_fields:
41
+ m[k] = val
42
+
43
+ return m
@@ -0,0 +1,81 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 801476f8859f
3
+
4
+ from __future__ import annotations
5
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
6
+ import pydantic
7
+ from pydantic import model_serializer
8
+ from typing import Optional
9
+ from typing_extensions import Annotated, NotRequired, TypedDict
10
+
11
+
12
+ class NetInflowTypedDict(TypedDict):
13
+ r"""Net market inflow snapshot for Nasdaq and NYSE. Use it to show whether reported flow is net buying or net selling."""
14
+
15
+ nasdaq_net_inflow: NotRequired[float]
16
+ r"""Net inflow value for Nasdaq activity. Positive values indicate net buying flow; negative values indicate net selling flow."""
17
+ nasdaq_trade_count: NotRequired[int]
18
+ r"""Number of Nasdaq trades included in the inflow calculation."""
19
+ nyse_net_inflow: NotRequired[float]
20
+ r"""Net inflow value for NYSE activity. Positive values indicate net buying flow; negative values indicate net selling flow."""
21
+ nyse_trade_count: NotRequired[int]
22
+ r"""Number of NYSE trades included in the inflow calculation."""
23
+ timestamp: NotRequired[str]
24
+ r"""Data timestamp in ISO 8601 format; fractional seconds may be present (for example microseconds)."""
25
+
26
+
27
+ class NetInflow(BaseModel):
28
+ r"""Net market inflow snapshot for Nasdaq and NYSE. Use it to show whether reported flow is net buying or net selling."""
29
+
30
+ nasdaq_net_inflow: Annotated[
31
+ Optional[float], pydantic.Field(alias="nasdaqNetInflow")
32
+ ] = None
33
+ r"""Net inflow value for Nasdaq activity. Positive values indicate net buying flow; negative values indicate net selling flow."""
34
+
35
+ nasdaq_trade_count: Annotated[
36
+ Optional[int], pydantic.Field(alias="nasdaqTradeCount")
37
+ ] = None
38
+ r"""Number of Nasdaq trades included in the inflow calculation."""
39
+
40
+ nyse_net_inflow: Annotated[
41
+ Optional[float], pydantic.Field(alias="nyseNetInflow")
42
+ ] = None
43
+ r"""Net inflow value for NYSE activity. Positive values indicate net buying flow; negative values indicate net selling flow."""
44
+
45
+ nyse_trade_count: Annotated[
46
+ Optional[int], pydantic.Field(alias="nyseTradeCount")
47
+ ] = None
48
+ r"""Number of NYSE trades included in the inflow calculation."""
49
+
50
+ timestamp: Optional[str] = None
51
+ r"""Data timestamp in ISO 8601 format; fractional seconds may be present (for example microseconds)."""
52
+
53
+ @model_serializer(mode="wrap")
54
+ def serialize_model(self, handler):
55
+ optional_fields = set(
56
+ [
57
+ "nasdaqNetInflow",
58
+ "nasdaqTradeCount",
59
+ "nyseNetInflow",
60
+ "nyseTradeCount",
61
+ "timestamp",
62
+ ]
63
+ )
64
+ serialized = handler(self)
65
+ m = {}
66
+
67
+ for n, f in type(self).model_fields.items():
68
+ k = f.alias or n
69
+ val = serialized.get(k, serialized.get(n))
70
+
71
+ if val != UNSET_SENTINEL:
72
+ if val is not None or k not in optional_fields:
73
+ m[k] = val
74
+
75
+ return m
76
+
77
+
78
+ try:
79
+ NetInflow.model_rebuild()
80
+ except NameError:
81
+ pass
@@ -0,0 +1,44 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: f9b91864decc
3
+
4
+ from __future__ import annotations
5
+ from .netinflow import NetInflow, NetInflowTypedDict
6
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
7
+ from pydantic import model_serializer
8
+ from typing import Optional
9
+ from typing_extensions import NotRequired, TypedDict
10
+
11
+
12
+ class NetInflowResponseTypedDict(TypedDict):
13
+ r"""Response envelope for the net inflow endpoint."""
14
+
15
+ data: NotRequired[NetInflowTypedDict]
16
+ r"""Net market inflow snapshot for Nasdaq and NYSE. Use it to show whether reported flow is net buying or net selling."""
17
+ success: NotRequired[bool]
18
+ r"""Always true on a successful response."""
19
+
20
+
21
+ class NetInflowResponse(BaseModel):
22
+ r"""Response envelope for the net inflow endpoint."""
23
+
24
+ data: Optional[NetInflow] = None
25
+ r"""Net market inflow snapshot for Nasdaq and NYSE. Use it to show whether reported flow is net buying or net selling."""
26
+
27
+ success: Optional[bool] = None
28
+ r"""Always true on a successful response."""
29
+
30
+ @model_serializer(mode="wrap")
31
+ def serialize_model(self, handler):
32
+ optional_fields = set(["data", "success"])
33
+ serialized = handler(self)
34
+ m = {}
35
+
36
+ for n, f in type(self).model_fields.items():
37
+ k = f.alias or n
38
+ val = serialized.get(k, serialized.get(n))
39
+
40
+ if val != UNSET_SENTINEL:
41
+ if val is not None or k not in optional_fields:
42
+ m[k] = val
43
+
44
+ return m
@@ -0,0 +1,102 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 47372de7118c
3
+
4
+ from __future__ import annotations
5
+ from .newstypeenum import NewsTypeEnum
6
+ from datetime import datetime
7
+ from finance_dev import models
8
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
9
+ from pydantic import field_serializer, model_serializer
10
+ from typing import List, Optional
11
+ from typing_extensions import NotRequired, TypedDict
12
+
13
+
14
+ class NewsItemTypedDict(TypedDict):
15
+ r"""A single news item or press release."""
16
+
17
+ action: NotRequired[str]
18
+ r"""News action type (typically empty)"""
19
+ authors: NotRequired[List[str]]
20
+ r"""Authors of the news item"""
21
+ body: NotRequired[str]
22
+ r"""Full body of the news article"""
23
+ id: NotRequired[int]
24
+ r"""Unique news item ID"""
25
+ news_type: NotRequired[NewsTypeEnum]
26
+ r"""Source category of the news item. Pick one:
27
+ - `news` — Editorial news articles from journalists and news services.
28
+ - `press_release` — Official press releases issued directly by companies.
29
+ """
30
+ symbols: NotRequired[List[str]]
31
+ r"""Related stock symbols"""
32
+ timestamp: NotRequired[datetime]
33
+ r"""Publication timestamp in ISO 8601 format"""
34
+ title: NotRequired[str]
35
+ r"""News headline"""
36
+
37
+
38
+ class NewsItem(BaseModel):
39
+ r"""A single news item or press release."""
40
+
41
+ action: Optional[str] = None
42
+ r"""News action type (typically empty)"""
43
+
44
+ authors: Optional[List[str]] = None
45
+ r"""Authors of the news item"""
46
+
47
+ body: Optional[str] = None
48
+ r"""Full body of the news article"""
49
+
50
+ id: Optional[int] = None
51
+ r"""Unique news item ID"""
52
+
53
+ news_type: Optional[NewsTypeEnum] = None
54
+ r"""Source category of the news item. Pick one:
55
+ - `news` — Editorial news articles from journalists and news services.
56
+ - `press_release` — Official press releases issued directly by companies.
57
+ """
58
+
59
+ symbols: Optional[List[str]] = None
60
+ r"""Related stock symbols"""
61
+
62
+ timestamp: Optional[datetime] = None
63
+ r"""Publication timestamp in ISO 8601 format"""
64
+
65
+ title: Optional[str] = None
66
+ r"""News headline"""
67
+
68
+ @field_serializer("news_type")
69
+ def serialize_news_type(self, value):
70
+ if isinstance(value, str):
71
+ try:
72
+ return models.NewsTypeEnum(value)
73
+ except ValueError:
74
+ return value
75
+ return value
76
+
77
+ @model_serializer(mode="wrap")
78
+ def serialize_model(self, handler):
79
+ optional_fields = set(
80
+ [
81
+ "action",
82
+ "authors",
83
+ "body",
84
+ "id",
85
+ "news_type",
86
+ "symbols",
87
+ "timestamp",
88
+ "title",
89
+ ]
90
+ )
91
+ serialized = handler(self)
92
+ m = {}
93
+
94
+ for n, f in type(self).model_fields.items():
95
+ k = f.alias or n
96
+ val = serialized.get(k, serialized.get(n))
97
+
98
+ if val != UNSET_SENTINEL:
99
+ if val is not None or k not in optional_fields:
100
+ m[k] = val
101
+
102
+ return m