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,42 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: af79bfab8b77
3
+
4
+ from __future__ import annotations
5
+ from .financialsreporteddatawrapper import (
6
+ FinancialsReportedDataWrapper,
7
+ FinancialsReportedDataWrapperTypedDict,
8
+ )
9
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
10
+ from pydantic import model_serializer
11
+ from typing import Optional
12
+ from typing_extensions import NotRequired, TypedDict
13
+
14
+
15
+ class FinancialsReportedResponseTypedDict(TypedDict):
16
+ r"""Response containing company financials as reported in SEC filings."""
17
+
18
+ data: NotRequired[FinancialsReportedDataWrapperTypedDict]
19
+ r"""Company identifiers and the list of reported SEC filings."""
20
+
21
+
22
+ class FinancialsReportedResponse(BaseModel):
23
+ r"""Response containing company financials as reported in SEC filings."""
24
+
25
+ data: Optional[FinancialsReportedDataWrapper] = None
26
+ r"""Company identifiers and the list of reported SEC filings."""
27
+
28
+ @model_serializer(mode="wrap")
29
+ def serialize_model(self, handler):
30
+ optional_fields = set(["data"])
31
+ serialized = handler(self)
32
+ m = {}
33
+
34
+ for n, f in type(self).model_fields.items():
35
+ k = f.alias or n
36
+ val = serialized.get(k, serialized.get(n))
37
+
38
+ if val != UNSET_SENTINEL:
39
+ if val is not None or k not in optional_fields:
40
+ m[k] = val
41
+
42
+ return m
@@ -0,0 +1,49 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: ce0134424625
3
+
4
+ from __future__ import annotations
5
+ from .revenuebreakdownentry import RevenueBreakdownEntry, RevenueBreakdownEntryTypedDict
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 FinancialsRevenueBreakdownDataWrapperTypedDict(TypedDict):
13
+ r"""Company identifiers and revenue breakdown entries from SEC filings."""
14
+
15
+ cik: NotRequired[str]
16
+ r"""Central Index Key assigned by the SEC."""
17
+ data: NotRequired[List[RevenueBreakdownEntryTypedDict]]
18
+ r"""Revenue breakdown entries by filing."""
19
+ symbol: NotRequired[str]
20
+ r"""Stock ticker symbol."""
21
+
22
+
23
+ class FinancialsRevenueBreakdownDataWrapper(BaseModel):
24
+ r"""Company identifiers and revenue breakdown entries from SEC filings."""
25
+
26
+ cik: Optional[str] = None
27
+ r"""Central Index Key assigned by the SEC."""
28
+
29
+ data: Optional[List[RevenueBreakdownEntry]] = None
30
+ r"""Revenue breakdown entries by filing."""
31
+
32
+ symbol: Optional[str] = None
33
+ r"""Stock ticker symbol."""
34
+
35
+ @model_serializer(mode="wrap")
36
+ def serialize_model(self, handler):
37
+ optional_fields = set(["cik", "data", "symbol"])
38
+ serialized = handler(self)
39
+ m = {}
40
+
41
+ for n, f in type(self).model_fields.items():
42
+ k = f.alias or n
43
+ val = serialized.get(k, serialized.get(n))
44
+
45
+ if val != UNSET_SENTINEL:
46
+ if val is not None or k not in optional_fields:
47
+ m[k] = val
48
+
49
+ return m
@@ -0,0 +1,42 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 49d2c6811694
3
+
4
+ from __future__ import annotations
5
+ from .financialsrevenuebreakdowndatawrapper import (
6
+ FinancialsRevenueBreakdownDataWrapper,
7
+ FinancialsRevenueBreakdownDataWrapperTypedDict,
8
+ )
9
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
10
+ from pydantic import model_serializer
11
+ from typing import Optional
12
+ from typing_extensions import NotRequired, TypedDict
13
+
14
+
15
+ class FinancialsRevenueBreakdownResponseTypedDict(TypedDict):
16
+ r"""Response containing revenue breakdown data."""
17
+
18
+ data: NotRequired[FinancialsRevenueBreakdownDataWrapperTypedDict]
19
+ r"""Company identifiers and revenue breakdown entries from SEC filings."""
20
+
21
+
22
+ class FinancialsRevenueBreakdownResponse(BaseModel):
23
+ r"""Response containing revenue breakdown data."""
24
+
25
+ data: Optional[FinancialsRevenueBreakdownDataWrapper] = None
26
+ r"""Company identifiers and revenue breakdown entries from SEC filings."""
27
+
28
+ @model_serializer(mode="wrap")
29
+ def serialize_model(self, handler):
30
+ optional_fields = set(["data"])
31
+ serialized = handler(self)
32
+ m = {}
33
+
34
+ for n, f in type(self).model_fields.items():
35
+ k = f.alias or n
36
+ val = serialized.get(k, serialized.get(n))
37
+
38
+ if val != UNSET_SENTINEL:
39
+ if val is not None or k not in optional_fields:
40
+ m[k] = val
41
+
42
+ return m
@@ -0,0 +1,44 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: e31053f3e45e
3
+
4
+ from __future__ import annotations
5
+ from .financialstatement import FinancialStatement, FinancialStatementTypedDict
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 FinancialsStatementsDataWrapperTypedDict(TypedDict):
13
+ r"""Symbol and list of standardized financial statements by period."""
14
+
15
+ financials: NotRequired[List[FinancialStatementTypedDict]]
16
+ r"""Array of financial statements for different periods"""
17
+ symbol: NotRequired[str]
18
+ r"""Stock ticker symbol"""
19
+
20
+
21
+ class FinancialsStatementsDataWrapper(BaseModel):
22
+ r"""Symbol and list of standardized financial statements by period."""
23
+
24
+ financials: Optional[List[FinancialStatement]] = None
25
+ r"""Array of financial statements for different periods"""
26
+
27
+ symbol: Optional[str] = None
28
+ r"""Stock ticker symbol"""
29
+
30
+ @model_serializer(mode="wrap")
31
+ def serialize_model(self, handler):
32
+ optional_fields = set(["financials", "symbol"])
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,42 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: ea55f9975766
3
+
4
+ from __future__ import annotations
5
+ from .financialsstatementsdatawrapper import (
6
+ FinancialsStatementsDataWrapper,
7
+ FinancialsStatementsDataWrapperTypedDict,
8
+ )
9
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
10
+ from pydantic import model_serializer
11
+ from typing import Optional
12
+ from typing_extensions import NotRequired, TypedDict
13
+
14
+
15
+ class FinancialsStatementsResponseTypedDict(TypedDict):
16
+ r"""Response containing standardized financial statements."""
17
+
18
+ data: NotRequired[FinancialsStatementsDataWrapperTypedDict]
19
+ r"""Symbol and list of standardized financial statements by period."""
20
+
21
+
22
+ class FinancialsStatementsResponse(BaseModel):
23
+ r"""Response containing standardized financial statements."""
24
+
25
+ data: Optional[FinancialsStatementsDataWrapper] = None
26
+ r"""Symbol and list of standardized financial statements by period."""
27
+
28
+ @model_serializer(mode="wrap")
29
+ def serialize_model(self, handler):
30
+ optional_fields = set(["data"])
31
+ serialized = handler(self)
32
+ m = {}
33
+
34
+ for n, f in type(self).model_fields.items():
35
+ k = f.alias or n
36
+ val = serialized.get(k, serialized.get(n))
37
+
38
+ if val != UNSET_SENTINEL:
39
+ if val is not None or k not in optional_fields:
40
+ m[k] = val
41
+
42
+ return m
@@ -0,0 +1,171 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 3a2ecccc9209
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 FinancialStatementTypedDict(TypedDict):
13
+ r"""Standardized income statement figures for a single reporting period."""
14
+
15
+ cost_of_goods_sold: NotRequired[float]
16
+ r"""Direct costs attributable to production of goods sold"""
17
+ diluted_average_shares_outstanding: NotRequired[float]
18
+ r"""Average number of shares outstanding including dilutive securities"""
19
+ diluted_eps: NotRequired[float]
20
+ r"""Earnings per share assuming dilution from convertible securities"""
21
+ ebit: NotRequired[float]
22
+ r"""Earnings Before Interest and Taxes"""
23
+ gross_income: NotRequired[float]
24
+ r"""Revenue minus cost of goods sold"""
25
+ interest_income_expense: NotRequired[float]
26
+ r"""Net interest income or expense from debt and investments"""
27
+ net_income: NotRequired[float]
28
+ r"""Total profit after all expenses and taxes"""
29
+ net_income_after_taxes: NotRequired[float]
30
+ r"""Net income after deducting income taxes"""
31
+ non_recurring_items: NotRequired[float]
32
+ r"""One-time or unusual items affecting income"""
33
+ period: NotRequired[str]
34
+ r"""Reporting period in YYYY-MM-DD format"""
35
+ pretax_income: NotRequired[float]
36
+ r"""Income before provision for income taxes"""
37
+ provisionfor_income_taxes: NotRequired[float]
38
+ r"""Estimated income tax expense for the period"""
39
+ research_development: NotRequired[float]
40
+ r"""Expenses for research and development activities"""
41
+ revenue: NotRequired[float]
42
+ r"""Total revenue from operations"""
43
+ sga_expense: NotRequired[float]
44
+ r"""Selling, General, and Administrative expenses"""
45
+ total_operating_expense: NotRequired[float]
46
+ r"""Sum of all operating expenses"""
47
+ total_other_income_expense_net: NotRequired[float]
48
+ r"""Net of other income and expenses not related to operations"""
49
+ year: NotRequired[int]
50
+ r"""Fiscal year of the financial statement"""
51
+
52
+
53
+ class FinancialStatement(BaseModel):
54
+ r"""Standardized income statement figures for a single reporting period."""
55
+
56
+ cost_of_goods_sold: Annotated[
57
+ Optional[float], pydantic.Field(alias="costOfGoodsSold")
58
+ ] = None
59
+ r"""Direct costs attributable to production of goods sold"""
60
+
61
+ diluted_average_shares_outstanding: Annotated[
62
+ Optional[float], pydantic.Field(alias="dilutedAverageSharesOutstanding")
63
+ ] = None
64
+ r"""Average number of shares outstanding including dilutive securities"""
65
+
66
+ diluted_eps: Annotated[Optional[float], pydantic.Field(alias="dilutedEPS")] = None
67
+ r"""Earnings per share assuming dilution from convertible securities"""
68
+
69
+ ebit: Optional[float] = None
70
+ r"""Earnings Before Interest and Taxes"""
71
+
72
+ gross_income: Annotated[Optional[float], pydantic.Field(alias="grossIncome")] = None
73
+ r"""Revenue minus cost of goods sold"""
74
+
75
+ interest_income_expense: Annotated[
76
+ Optional[float], pydantic.Field(alias="interestIncomeExpense")
77
+ ] = None
78
+ r"""Net interest income or expense from debt and investments"""
79
+
80
+ net_income: Annotated[Optional[float], pydantic.Field(alias="netIncome")] = None
81
+ r"""Total profit after all expenses and taxes"""
82
+
83
+ net_income_after_taxes: Annotated[
84
+ Optional[float], pydantic.Field(alias="netIncomeAfterTaxes")
85
+ ] = None
86
+ r"""Net income after deducting income taxes"""
87
+
88
+ non_recurring_items: Annotated[
89
+ Optional[float], pydantic.Field(alias="nonRecurringItems")
90
+ ] = None
91
+ r"""One-time or unusual items affecting income"""
92
+
93
+ period: Optional[str] = None
94
+ r"""Reporting period in YYYY-MM-DD format"""
95
+
96
+ pretax_income: Annotated[Optional[float], pydantic.Field(alias="pretaxIncome")] = (
97
+ None
98
+ )
99
+ r"""Income before provision for income taxes"""
100
+
101
+ provisionfor_income_taxes: Annotated[
102
+ Optional[float], pydantic.Field(alias="provisionforIncomeTaxes")
103
+ ] = None
104
+ r"""Estimated income tax expense for the period"""
105
+
106
+ research_development: Annotated[
107
+ Optional[float], pydantic.Field(alias="researchDevelopment")
108
+ ] = None
109
+ r"""Expenses for research and development activities"""
110
+
111
+ revenue: Optional[float] = None
112
+ r"""Total revenue from operations"""
113
+
114
+ sga_expense: Annotated[Optional[float], pydantic.Field(alias="sgaExpense")] = None
115
+ r"""Selling, General, and Administrative expenses"""
116
+
117
+ total_operating_expense: Annotated[
118
+ Optional[float], pydantic.Field(alias="totalOperatingExpense")
119
+ ] = None
120
+ r"""Sum of all operating expenses"""
121
+
122
+ total_other_income_expense_net: Annotated[
123
+ Optional[float], pydantic.Field(alias="totalOtherIncomeExpenseNet")
124
+ ] = None
125
+ r"""Net of other income and expenses not related to operations"""
126
+
127
+ year: Optional[int] = None
128
+ r"""Fiscal year of the financial statement"""
129
+
130
+ @model_serializer(mode="wrap")
131
+ def serialize_model(self, handler):
132
+ optional_fields = set(
133
+ [
134
+ "costOfGoodsSold",
135
+ "dilutedAverageSharesOutstanding",
136
+ "dilutedEPS",
137
+ "ebit",
138
+ "grossIncome",
139
+ "interestIncomeExpense",
140
+ "netIncome",
141
+ "netIncomeAfterTaxes",
142
+ "nonRecurringItems",
143
+ "period",
144
+ "pretaxIncome",
145
+ "provisionforIncomeTaxes",
146
+ "researchDevelopment",
147
+ "revenue",
148
+ "sgaExpense",
149
+ "totalOperatingExpense",
150
+ "totalOtherIncomeExpenseNet",
151
+ "year",
152
+ ]
153
+ )
154
+ serialized = handler(self)
155
+ m = {}
156
+
157
+ for n, f in type(self).model_fields.items():
158
+ k = f.alias or n
159
+ val = serialized.get(k, serialized.get(n))
160
+
161
+ if val != UNSET_SENTINEL:
162
+ if val is not None or k not in optional_fields:
163
+ m[k] = val
164
+
165
+ return m
166
+
167
+
168
+ try:
169
+ FinancialStatement.model_rebuild()
170
+ except NameError:
171
+ pass
@@ -0,0 +1,14 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: aa03517a0224
3
+
4
+ from __future__ import annotations
5
+ from enum import Enum
6
+ from finance_dev import utils
7
+
8
+
9
+ class FinancialStatementType(str, Enum, metaclass=utils.OpenEnumMeta):
10
+ r"""Statement: bs (balance sheet), ic (income), cf (cash flow)."""
11
+
12
+ BS = "bs"
13
+ IC = "ic"
14
+ CF = "cf"
@@ -0,0 +1,53 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 550ebfcc960d
3
+
4
+ from __future__ import annotations
5
+ from .accountbalancev2 import AccountBalanceV2, AccountBalanceV2TypedDict
6
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
7
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
8
+ from finance_dev.utils import FieldMetadata, PathParamMetadata
9
+ import pydantic
10
+ from pydantic import model_serializer
11
+ from typing import Optional
12
+ from typing_extensions import Annotated, NotRequired, TypedDict
13
+
14
+
15
+ class GetAccountBalanceRequestTypedDict(TypedDict):
16
+ id: str
17
+ r"""Account whose balance you want to read. Enter the account ID from `GET /v1/users/me/accounts`."""
18
+
19
+
20
+ class GetAccountBalanceRequest(BaseModel):
21
+ id: Annotated[
22
+ str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
23
+ ]
24
+ r"""Account whose balance you want to read. Enter the account ID from `GET /v1/users/me/accounts`."""
25
+
26
+
27
+ class GetAccountBalanceResponseTypedDict(TypedDict):
28
+ http_meta: HTTPMetadataTypedDict
29
+ account_balance_v2: NotRequired[AccountBalanceV2TypedDict]
30
+ r"""Account balance retrieved successfully"""
31
+
32
+
33
+ class GetAccountBalanceResponse(BaseModel):
34
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
35
+
36
+ account_balance_v2: Optional[AccountBalanceV2] = None
37
+ r"""Account balance retrieved successfully"""
38
+
39
+ @model_serializer(mode="wrap")
40
+ def serialize_model(self, handler):
41
+ optional_fields = set(["AccountBalanceV2"])
42
+ serialized = handler(self)
43
+ m = {}
44
+
45
+ for n, f in type(self).model_fields.items():
46
+ k = f.alias or n
47
+ val = serialized.get(k, serialized.get(n))
48
+
49
+ if val != UNSET_SENTINEL:
50
+ if val is not None or k not in optional_fields:
51
+ m[k] = val
52
+
53
+ return m
@@ -0,0 +1,53 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: c57fa9cd8235
3
+
4
+ from __future__ import annotations
5
+ from .getpositionsresponse import GetPositionsResponse, GetPositionsResponseTypedDict
6
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
7
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
8
+ from finance_dev.utils import FieldMetadata, PathParamMetadata
9
+ import pydantic
10
+ from pydantic import model_serializer
11
+ from typing import Optional
12
+ from typing_extensions import Annotated, NotRequired, TypedDict
13
+
14
+
15
+ class GetAccountPositionsRequestTypedDict(TypedDict):
16
+ id: str
17
+ r"""Account whose positions you want to read. Enter the account ID from [User Accounts](/api-reference/accounts/user-accounts)."""
18
+
19
+
20
+ class GetAccountPositionsRequest(BaseModel):
21
+ id: Annotated[
22
+ str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
23
+ ]
24
+ r"""Account whose positions you want to read. Enter the account ID from [User Accounts](/api-reference/accounts/user-accounts)."""
25
+
26
+
27
+ class GetAccountPositionsResponseTypedDict(TypedDict):
28
+ http_meta: HTTPMetadataTypedDict
29
+ get_positions_response: NotRequired[GetPositionsResponseTypedDict]
30
+ r"""Account positions retrieved successfully"""
31
+
32
+
33
+ class GetAccountPositionsResponse(BaseModel):
34
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
35
+
36
+ get_positions_response: Optional[GetPositionsResponse] = None
37
+ r"""Account positions retrieved successfully"""
38
+
39
+ @model_serializer(mode="wrap")
40
+ def serialize_model(self, handler):
41
+ optional_fields = set(["GetPositionsResponse"])
42
+ serialized = handler(self)
43
+ m = {}
44
+
45
+ for n, f in type(self).model_fields.items():
46
+ k = f.alias or n
47
+ val = serialized.get(k, serialized.get(n))
48
+
49
+ if val != UNSET_SENTINEL:
50
+ if val is not None or k not in optional_fields:
51
+ m[k] = val
52
+
53
+ return m
@@ -0,0 +1,22 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 05035fa3859d
3
+
4
+ from __future__ import annotations
5
+ from .accountitem import AccountItem, AccountItemTypedDict
6
+ from finance_dev.types import BaseModel
7
+ from typing import List
8
+ from typing_extensions import TypedDict
9
+
10
+
11
+ class GetAccountsResponseTypedDict(TypedDict):
12
+ r"""Response for GET /v2/users/me/accounts"""
13
+
14
+ accounts: List[AccountItemTypedDict]
15
+ r"""Trading accounts linked to the authenticated user"""
16
+
17
+
18
+ class GetAccountsResponse(BaseModel):
19
+ r"""Response for GET /v2/users/me/accounts"""
20
+
21
+ accounts: List[AccountItem]
22
+ r"""Trading accounts linked to the authenticated user"""
@@ -0,0 +1,94 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 21ba2fab1797
3
+
4
+ from __future__ import annotations
5
+ from .aggregatetechnicalindicatorsresponse import (
6
+ AggregateTechnicalIndicatorsResponse,
7
+ AggregateTechnicalIndicatorsResponseTypedDict,
8
+ )
9
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
10
+ from enum import Enum
11
+ from finance_dev import models, utils
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 GetAggregateTechnicalIndicatorsResolution(
21
+ str, Enum, metaclass=utils.OpenEnumMeta
22
+ ):
23
+ r"""How long each bar covers. Supported values are minutes (`1`, `5`, `15`, `30`, `60`) or daily/weekly/monthly (`D`, `W`, `M`). Other values return 400 Bad Request with error code `VALIDATION_ERROR`."""
24
+
25
+ ONE = "1"
26
+ FIVE = "5"
27
+ FIFTEEN = "15"
28
+ THIRTY = "30"
29
+ SIXTY = "60"
30
+ D = "D"
31
+ W = "W"
32
+ M = "M"
33
+
34
+
35
+ class GetAggregateTechnicalIndicatorsRequestTypedDict(TypedDict):
36
+ symbol: str
37
+ 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`."""
38
+ resolution: GetAggregateTechnicalIndicatorsResolution
39
+ r"""How long each bar covers. Supported values are minutes (`1`, `5`, `15`, `30`, `60`) or daily/weekly/monthly (`D`, `W`, `M`). Other values return 400 Bad Request with error code `VALIDATION_ERROR`."""
40
+
41
+
42
+ class GetAggregateTechnicalIndicatorsRequest(BaseModel):
43
+ symbol: Annotated[
44
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
45
+ ]
46
+ 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`."""
47
+
48
+ resolution: Annotated[
49
+ GetAggregateTechnicalIndicatorsResolution,
50
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
51
+ ]
52
+ r"""How long each bar covers. Supported values are minutes (`1`, `5`, `15`, `30`, `60`) or daily/weekly/monthly (`D`, `W`, `M`). Other values return 400 Bad Request with error code `VALIDATION_ERROR`."""
53
+
54
+ @field_serializer("resolution")
55
+ def serialize_resolution(self, value):
56
+ if isinstance(value, str):
57
+ try:
58
+ return models.GetAggregateTechnicalIndicatorsResolution(value)
59
+ except ValueError:
60
+ return value
61
+ return value
62
+
63
+
64
+ class GetAggregateTechnicalIndicatorsResponseTypedDict(TypedDict):
65
+ http_meta: HTTPMetadataTypedDict
66
+ aggregate_technical_indicators_response: NotRequired[
67
+ AggregateTechnicalIndicatorsResponseTypedDict
68
+ ]
69
+ r"""Successful response"""
70
+
71
+
72
+ class GetAggregateTechnicalIndicatorsResponse(BaseModel):
73
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
74
+
75
+ aggregate_technical_indicators_response: Optional[
76
+ AggregateTechnicalIndicatorsResponse
77
+ ] = None
78
+ r"""Successful response"""
79
+
80
+ @model_serializer(mode="wrap")
81
+ def serialize_model(self, handler):
82
+ optional_fields = set(["AggregateTechnicalIndicatorsResponse"])
83
+ serialized = handler(self)
84
+ m = {}
85
+
86
+ for n, f in type(self).model_fields.items():
87
+ k = f.alias or n
88
+ val = serialized.get(k, serialized.get(n))
89
+
90
+ if val != UNSET_SENTINEL:
91
+ if val is not None or k not in optional_fields:
92
+ m[k] = val
93
+
94
+ return m