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,56 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: e7d038e6e1d7
3
+
4
+ from __future__ import annotations
5
+ from .getequitydetailsresponse import (
6
+ GetEquityDetailsResponse,
7
+ GetEquityDetailsResponseTypedDict,
8
+ )
9
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
10
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
11
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
12
+ import pydantic
13
+ from pydantic import model_serializer
14
+ from typing import Optional
15
+ from typing_extensions import Annotated, NotRequired, TypedDict
16
+
17
+
18
+ class GetEquityDetailsRequestTypedDict(TypedDict):
19
+ symbols: str
20
+ r"""One or more uppercase ticker symbols, separated by commas (e.g. `AAPL,MSFT,GOOGL`). Send at least one. The response order matches the request order."""
21
+
22
+
23
+ class GetEquityDetailsRequest(BaseModel):
24
+ symbols: Annotated[
25
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
26
+ ]
27
+ r"""One or more uppercase ticker symbols, separated by commas (e.g. `AAPL,MSFT,GOOGL`). Send at least one. The response order matches the request order."""
28
+
29
+
30
+ class GetEquityDetailsResponseResponseTypedDict(TypedDict):
31
+ http_meta: HTTPMetadataTypedDict
32
+ get_equity_details_response: NotRequired[GetEquityDetailsResponseTypedDict]
33
+ r"""`data` holds per-symbol objects matching `EquityDetailsDTO`. Omitted keys were empty in cache. See schema for the `errors` array shape when a symbol cannot be returned."""
34
+
35
+
36
+ class GetEquityDetailsResponseResponse(BaseModel):
37
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
38
+
39
+ get_equity_details_response: Optional[GetEquityDetailsResponse] = None
40
+ r"""`data` holds per-symbol objects matching `EquityDetailsDTO`. Omitted keys were empty in cache. See schema for the `errors` array shape when a symbol cannot be returned."""
41
+
42
+ @model_serializer(mode="wrap")
43
+ def serialize_model(self, handler):
44
+ optional_fields = set(["GetEquityDetailsResponse"])
45
+ serialized = handler(self)
46
+ m = {}
47
+
48
+ for n, f in type(self).model_fields.items():
49
+ k = f.alias or n
50
+ val = serialized.get(k, serialized.get(n))
51
+
52
+ if val != UNSET_SENTINEL:
53
+ if val is not None or k not in optional_fields:
54
+ m[k] = val
55
+
56
+ return m
@@ -0,0 +1,45 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: a6d294e602bf
3
+
4
+ from __future__ import annotations
5
+ from .equitydetailsdto import EquityDetailsDTO, EquityDetailsDTOTypedDict
6
+ from .symbolerror import SymbolError, SymbolErrorTypedDict
7
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
8
+ from pydantic import model_serializer
9
+ from typing import List, Optional
10
+ from typing_extensions import NotRequired, TypedDict
11
+
12
+
13
+ class GetEquityDetailsResponseTypedDict(TypedDict):
14
+ r"""Wrapper for GET /v1/marketdata/equities/details: `data` for successful symbols, `errors` when applicable."""
15
+
16
+ data: NotRequired[List[EquityDetailsDTOTypedDict]]
17
+ r"""Symbols that returned a non-empty snapshot with valid quote data"""
18
+ errors: NotRequired[List[SymbolErrorTypedDict]]
19
+ r"""Per-symbol error entries when a requested symbol cannot be included in `data`"""
20
+
21
+
22
+ class GetEquityDetailsResponse(BaseModel):
23
+ r"""Wrapper for GET /v1/marketdata/equities/details: `data` for successful symbols, `errors` when applicable."""
24
+
25
+ data: Optional[List[EquityDetailsDTO]] = None
26
+ r"""Symbols that returned a non-empty snapshot with valid quote data"""
27
+
28
+ errors: Optional[List[SymbolError]] = None
29
+ r"""Per-symbol error entries when a requested symbol cannot be included in `data`"""
30
+
31
+ @model_serializer(mode="wrap")
32
+ def serialize_model(self, handler):
33
+ optional_fields = set(["data", "errors"])
34
+ serialized = handler(self)
35
+ m = {}
36
+
37
+ for n, f in type(self).model_fields.items():
38
+ k = f.alias or n
39
+ val = serialized.get(k, serialized.get(n))
40
+
41
+ if val != UNSET_SENTINEL:
42
+ if val is not None or k not in optional_fields:
43
+ m[k] = val
44
+
45
+ return m
@@ -0,0 +1,40 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 14327e746f73
3
+
4
+ from __future__ import annotations
5
+ from .etblistresponse import EtbListResponse, EtbListResponseTypedDict
6
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
7
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
8
+ import pydantic
9
+ from pydantic import model_serializer
10
+ from typing import Optional
11
+ from typing_extensions import Annotated, NotRequired, TypedDict
12
+
13
+
14
+ class GetEtbListResponseTypedDict(TypedDict):
15
+ http_meta: HTTPMetadataTypedDict
16
+ etb_list_response: NotRequired[EtbListResponseTypedDict]
17
+ r"""The borrowable universe currently in effect. An empty list is a valid 200: before the day's list has loaded this returns `{\"symbols\": [], \"count\": 0}` rather than an error, which means the list is not loaded yet — it must not be read as \"nothing is borrowable\". No caching headers are set; cache for the trading day and refresh after the next market open."""
18
+
19
+
20
+ class GetEtbListResponse(BaseModel):
21
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
22
+
23
+ etb_list_response: Optional[EtbListResponse] = None
24
+ r"""The borrowable universe currently in effect. An empty list is a valid 200: before the day's list has loaded this returns `{\"symbols\": [], \"count\": 0}` rather than an error, which means the list is not loaded yet — it must not be read as \"nothing is borrowable\". No caching headers are set; cache for the trading day and refresh after the next market open."""
25
+
26
+ @model_serializer(mode="wrap")
27
+ def serialize_model(self, handler):
28
+ optional_fields = set(["EtbListResponse"])
29
+ serialized = handler(self)
30
+ m = {}
31
+
32
+ for n, f in type(self).model_fields.items():
33
+ k = f.alias or n
34
+ val = serialized.get(k, serialized.get(n))
35
+
36
+ if val != UNSET_SENTINEL:
37
+ if val is not None or k not in optional_fields:
38
+ m[k] = val
39
+
40
+ return m
@@ -0,0 +1,80 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 08ebf4ede86a
3
+
4
+ from __future__ import annotations
5
+ from .etfcountryallocationresponse import (
6
+ EtfCountryAllocationResponse,
7
+ EtfCountryAllocationResponseTypedDict,
8
+ )
9
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
10
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
11
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
12
+ import pydantic
13
+ from pydantic import model_serializer
14
+ from typing import Optional
15
+ from typing_extensions import Annotated, NotRequired, TypedDict
16
+
17
+
18
+ class GetEtfCountryAllocationRequestTypedDict(TypedDict):
19
+ symbol: str
20
+ r"""ETF ticker to query. Send the plain uppercase symbol, e.g. `SPY`, `QQQ`, `IWM`."""
21
+ isin: NotRequired[str]
22
+ r"""ISIN identifier — the 12-character International Securities Identification Number for the instrument (e.g. `US0378331005` for Apple). Provide this instead of `symbol` when you have an ISIN."""
23
+
24
+
25
+ class GetEtfCountryAllocationRequest(BaseModel):
26
+ symbol: Annotated[
27
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
28
+ ]
29
+ r"""ETF ticker to query. Send the plain uppercase symbol, e.g. `SPY`, `QQQ`, `IWM`."""
30
+
31
+ isin: Annotated[
32
+ Optional[str],
33
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
34
+ ] = None
35
+ r"""ISIN identifier — the 12-character International Securities Identification Number for the instrument (e.g. `US0378331005` for Apple). Provide this instead of `symbol` when you have an ISIN."""
36
+
37
+ @model_serializer(mode="wrap")
38
+ def serialize_model(self, handler):
39
+ optional_fields = set(["isin"])
40
+ serialized = handler(self)
41
+ m = {}
42
+
43
+ for n, f in type(self).model_fields.items():
44
+ k = f.alias or n
45
+ val = serialized.get(k, serialized.get(n))
46
+
47
+ if val != UNSET_SENTINEL:
48
+ if val is not None or k not in optional_fields:
49
+ m[k] = val
50
+
51
+ return m
52
+
53
+
54
+ class GetEtfCountryAllocationResponseTypedDict(TypedDict):
55
+ http_meta: HTTPMetadataTypedDict
56
+ etf_country_allocation_response: NotRequired[EtfCountryAllocationResponseTypedDict]
57
+ r"""Successful response"""
58
+
59
+
60
+ class GetEtfCountryAllocationResponse(BaseModel):
61
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
62
+
63
+ etf_country_allocation_response: Optional[EtfCountryAllocationResponse] = None
64
+ r"""Successful response"""
65
+
66
+ @model_serializer(mode="wrap")
67
+ def serialize_model(self, handler):
68
+ optional_fields = set(["EtfCountryAllocationResponse"])
69
+ serialized = handler(self)
70
+ m = {}
71
+
72
+ for n, f in type(self).model_fields.items():
73
+ k = f.alias or n
74
+ val = serialized.get(k, serialized.get(n))
75
+
76
+ if val != UNSET_SENTINEL:
77
+ if val is not None or k not in optional_fields:
78
+ m[k] = val
79
+
80
+ return m
@@ -0,0 +1,96 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 568d648ecd0c
3
+
4
+ from __future__ import annotations
5
+ from .etfholdingsresponse import EtfHoldingsResponse, EtfHoldingsResponseTypedDict
6
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
7
+ from datetime import date
8
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
9
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
10
+ import pydantic
11
+ from pydantic import model_serializer
12
+ from typing import Optional
13
+ from typing_extensions import Annotated, NotRequired, TypedDict
14
+
15
+
16
+ class GetEtfHoldingsRequestTypedDict(TypedDict):
17
+ symbol: NotRequired[str]
18
+ r"""ETF ticker to filter by. Send the plain uppercase symbol (e.g. `SPY`). Provide either `symbol` or `isin`."""
19
+ isin: NotRequired[str]
20
+ r"""ISIN identifier — the 12-character International Securities Identification Number for the instrument (e.g. `US0378331005` for Apple). Provide this instead of `symbol` when you have an ISIN."""
21
+ skip: NotRequired[int]
22
+ r"""(Optional) Number of records to skip for pagination"""
23
+ date_: NotRequired[date]
24
+ r"""(Optional) Date for historical holdings (YYYY-MM-DD)"""
25
+
26
+
27
+ class GetEtfHoldingsRequest(BaseModel):
28
+ symbol: Annotated[
29
+ Optional[str],
30
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
31
+ ] = None
32
+ r"""ETF ticker to filter by. Send the plain uppercase symbol (e.g. `SPY`). Provide either `symbol` or `isin`."""
33
+
34
+ isin: Annotated[
35
+ Optional[str],
36
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
37
+ ] = None
38
+ r"""ISIN identifier — the 12-character International Securities Identification Number for the instrument (e.g. `US0378331005` for Apple). Provide this instead of `symbol` when you have an ISIN."""
39
+
40
+ skip: Annotated[
41
+ Optional[int],
42
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
43
+ ] = None
44
+ r"""(Optional) Number of records to skip for pagination"""
45
+
46
+ date_: Annotated[
47
+ Optional[date],
48
+ pydantic.Field(alias="date"),
49
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
50
+ ] = None
51
+ r"""(Optional) Date for historical holdings (YYYY-MM-DD)"""
52
+
53
+ @model_serializer(mode="wrap")
54
+ def serialize_model(self, handler):
55
+ optional_fields = set(["symbol", "isin", "skip", "date"])
56
+ serialized = handler(self)
57
+ m = {}
58
+
59
+ for n, f in type(self).model_fields.items():
60
+ k = f.alias or n
61
+ val = serialized.get(k, serialized.get(n))
62
+
63
+ if val != UNSET_SENTINEL:
64
+ if val is not None or k not in optional_fields:
65
+ m[k] = val
66
+
67
+ return m
68
+
69
+
70
+ class GetEtfHoldingsResponseTypedDict(TypedDict):
71
+ http_meta: HTTPMetadataTypedDict
72
+ etf_holdings_response: NotRequired[EtfHoldingsResponseTypedDict]
73
+ r"""ETF holdings."""
74
+
75
+
76
+ class GetEtfHoldingsResponse(BaseModel):
77
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
78
+
79
+ etf_holdings_response: Optional[EtfHoldingsResponse] = None
80
+ r"""ETF holdings."""
81
+
82
+ @model_serializer(mode="wrap")
83
+ def serialize_model(self, handler):
84
+ optional_fields = set(["EtfHoldingsResponse"])
85
+ serialized = handler(self)
86
+ m = {}
87
+
88
+ for n, f in type(self).model_fields.items():
89
+ k = f.alias or n
90
+ val = serialized.get(k, serialized.get(n))
91
+
92
+ if val != UNSET_SENTINEL:
93
+ if val is not None or k not in optional_fields:
94
+ m[k] = val
95
+
96
+ return m
@@ -0,0 +1,77 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: b78ab004fd11
3
+
4
+ from __future__ import annotations
5
+ from .etfprofileresponse import EtfProfileResponse, EtfProfileResponseTypedDict
6
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
7
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
8
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
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 GetEtfProfileRequestTypedDict(TypedDict):
16
+ symbol: str
17
+ r"""ETF ticker symbol (e.g. SPY, QQQ, VTI)"""
18
+ isin: NotRequired[str]
19
+ r"""ISIN identifier — the 12-character International Securities Identification Number for the instrument (e.g. `US0378331005` for Apple). Provide this instead of `symbol` when you have an ISIN."""
20
+
21
+
22
+ class GetEtfProfileRequest(BaseModel):
23
+ symbol: Annotated[
24
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
25
+ ]
26
+ r"""ETF ticker symbol (e.g. SPY, QQQ, VTI)"""
27
+
28
+ isin: Annotated[
29
+ Optional[str],
30
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
31
+ ] = None
32
+ r"""ISIN identifier — the 12-character International Securities Identification Number for the instrument (e.g. `US0378331005` for Apple). Provide this instead of `symbol` when you have an ISIN."""
33
+
34
+ @model_serializer(mode="wrap")
35
+ def serialize_model(self, handler):
36
+ optional_fields = set(["isin"])
37
+ serialized = handler(self)
38
+ m = {}
39
+
40
+ for n, f in type(self).model_fields.items():
41
+ k = f.alias or n
42
+ val = serialized.get(k, serialized.get(n))
43
+
44
+ if val != UNSET_SENTINEL:
45
+ if val is not None or k not in optional_fields:
46
+ m[k] = val
47
+
48
+ return m
49
+
50
+
51
+ class GetEtfProfileResponseTypedDict(TypedDict):
52
+ http_meta: HTTPMetadataTypedDict
53
+ etf_profile_response: NotRequired[EtfProfileResponseTypedDict]
54
+ r"""ETF profile."""
55
+
56
+
57
+ class GetEtfProfileResponse(BaseModel):
58
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
59
+
60
+ etf_profile_response: Optional[EtfProfileResponse] = None
61
+ r"""ETF profile."""
62
+
63
+ @model_serializer(mode="wrap")
64
+ def serialize_model(self, handler):
65
+ optional_fields = set(["EtfProfileResponse"])
66
+ serialized = handler(self)
67
+ m = {}
68
+
69
+ for n, f in type(self).model_fields.items():
70
+ k = f.alias or n
71
+ val = serialized.get(k, serialized.get(n))
72
+
73
+ if val != UNSET_SENTINEL:
74
+ if val is not None or k not in optional_fields:
75
+ m[k] = val
76
+
77
+ return m
@@ -0,0 +1,80 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 01d4c11f6320
3
+
4
+ from __future__ import annotations
5
+ from .etfsectorallocationresponse import (
6
+ EtfSectorAllocationResponse,
7
+ EtfSectorAllocationResponseTypedDict,
8
+ )
9
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
10
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
11
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
12
+ import pydantic
13
+ from pydantic import model_serializer
14
+ from typing import Optional
15
+ from typing_extensions import Annotated, NotRequired, TypedDict
16
+
17
+
18
+ class GetEtfSectorAllocationRequestTypedDict(TypedDict):
19
+ symbol: str
20
+ r"""ETF ticker to query. Send the plain uppercase symbol, e.g. `SPY`, `QQQ`, `IWM`."""
21
+ isin: NotRequired[str]
22
+ r"""ISIN identifier — the 12-character International Securities Identification Number for the instrument (e.g. `US0378331005` for Apple). Provide this instead of `symbol` when you have an ISIN."""
23
+
24
+
25
+ class GetEtfSectorAllocationRequest(BaseModel):
26
+ symbol: Annotated[
27
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
28
+ ]
29
+ r"""ETF ticker to query. Send the plain uppercase symbol, e.g. `SPY`, `QQQ`, `IWM`."""
30
+
31
+ isin: Annotated[
32
+ Optional[str],
33
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
34
+ ] = None
35
+ r"""ISIN identifier — the 12-character International Securities Identification Number for the instrument (e.g. `US0378331005` for Apple). Provide this instead of `symbol` when you have an ISIN."""
36
+
37
+ @model_serializer(mode="wrap")
38
+ def serialize_model(self, handler):
39
+ optional_fields = set(["isin"])
40
+ serialized = handler(self)
41
+ m = {}
42
+
43
+ for n, f in type(self).model_fields.items():
44
+ k = f.alias or n
45
+ val = serialized.get(k, serialized.get(n))
46
+
47
+ if val != UNSET_SENTINEL:
48
+ if val is not None or k not in optional_fields:
49
+ m[k] = val
50
+
51
+ return m
52
+
53
+
54
+ class GetEtfSectorAllocationResponseTypedDict(TypedDict):
55
+ http_meta: HTTPMetadataTypedDict
56
+ etf_sector_allocation_response: NotRequired[EtfSectorAllocationResponseTypedDict]
57
+ r"""Successful response"""
58
+
59
+
60
+ class GetEtfSectorAllocationResponse(BaseModel):
61
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
62
+
63
+ etf_sector_allocation_response: Optional[EtfSectorAllocationResponse] = None
64
+ r"""Successful response"""
65
+
66
+ @model_serializer(mode="wrap")
67
+ def serialize_model(self, handler):
68
+ optional_fields = set(["EtfSectorAllocationResponse"])
69
+ serialized = handler(self)
70
+ m = {}
71
+
72
+ for n, f in type(self).model_fields.items():
73
+ k = f.alias or n
74
+ val = serialized.get(k, serialized.get(n))
75
+
76
+ if val != UNSET_SENTINEL:
77
+ if val is not None or k not in optional_fields:
78
+ m[k] = val
79
+
80
+ return m
@@ -0,0 +1,87 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: a53d4aec4038
3
+
4
+ from __future__ import annotations
5
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
6
+ from .predmdeventwithcontracts import (
7
+ PredMdEventWithContracts,
8
+ PredMdEventWithContractsTypedDict,
9
+ )
10
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
11
+ from finance_dev.utils import FieldMetadata, PathParamMetadata
12
+ import pydantic
13
+ from pydantic import model_serializer
14
+ from typing import Optional
15
+ from typing_extensions import Annotated, NotRequired, TypedDict
16
+
17
+
18
+ class GetEventContractsRequestTypedDict(TypedDict):
19
+ event_id: str
20
+
21
+
22
+ class GetEventContractsRequest(BaseModel):
23
+ event_id: Annotated[
24
+ str,
25
+ pydantic.Field(alias="eventId"),
26
+ FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
27
+ ]
28
+
29
+
30
+ class GetEventContractsResponseBodyTypedDict(TypedDict):
31
+ r"""Standard success envelope used by all success responses. `data` is endpoint-specific."""
32
+
33
+ success: bool
34
+ data: NotRequired[PredMdEventWithContractsTypedDict]
35
+
36
+
37
+ class GetEventContractsResponseBody(BaseModel):
38
+ r"""Standard success envelope used by all success responses. `data` is endpoint-specific."""
39
+
40
+ success: bool
41
+
42
+ data: Optional[PredMdEventWithContracts] = None
43
+
44
+ @model_serializer(mode="wrap")
45
+ def serialize_model(self, handler):
46
+ optional_fields = set(["data"])
47
+ serialized = handler(self)
48
+ m = {}
49
+
50
+ for n, f in type(self).model_fields.items():
51
+ k = f.alias or n
52
+ val = serialized.get(k, serialized.get(n))
53
+
54
+ if val != UNSET_SENTINEL:
55
+ if val is not None or k not in optional_fields:
56
+ m[k] = val
57
+
58
+ return m
59
+
60
+
61
+ class GetEventContractsResponseTypedDict(TypedDict):
62
+ http_meta: HTTPMetadataTypedDict
63
+ object: NotRequired[GetEventContractsResponseBodyTypedDict]
64
+ r"""Event with its contracts"""
65
+
66
+
67
+ class GetEventContractsResponse(BaseModel):
68
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
69
+
70
+ object: Optional[GetEventContractsResponseBody] = None
71
+ r"""Event with its contracts"""
72
+
73
+ @model_serializer(mode="wrap")
74
+ def serialize_model(self, handler):
75
+ optional_fields = set(["object"])
76
+ serialized = handler(self)
77
+ m = {}
78
+
79
+ for n, f in type(self).model_fields.items():
80
+ k = f.alias or n
81
+ val = serialized.get(k, serialized.get(n))
82
+
83
+ if val != UNSET_SENTINEL:
84
+ if val is not None or k not in optional_fields:
85
+ m[k] = val
86
+
87
+ return m
@@ -0,0 +1,47 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 0ca10df80498
3
+
4
+ from __future__ import annotations
5
+ from .fdaadvisorycommitteecalendarresponse import (
6
+ FdaAdvisoryCommitteeCalendarResponse,
7
+ FdaAdvisoryCommitteeCalendarResponseTypedDict,
8
+ )
9
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
10
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
11
+ import pydantic
12
+ from pydantic import model_serializer
13
+ from typing import Optional
14
+ from typing_extensions import Annotated, NotRequired, TypedDict
15
+
16
+
17
+ class GetFdaAdvisoryCommitteeCalendarResponseTypedDict(TypedDict):
18
+ http_meta: HTTPMetadataTypedDict
19
+ fda_advisory_committee_calendar_response: NotRequired[
20
+ FdaAdvisoryCommitteeCalendarResponseTypedDict
21
+ ]
22
+ r"""FDA advisory committee calendar."""
23
+
24
+
25
+ class GetFdaAdvisoryCommitteeCalendarResponse(BaseModel):
26
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
27
+
28
+ fda_advisory_committee_calendar_response: Optional[
29
+ FdaAdvisoryCommitteeCalendarResponse
30
+ ] = None
31
+ r"""FDA advisory committee calendar."""
32
+
33
+ @model_serializer(mode="wrap")
34
+ def serialize_model(self, handler):
35
+ optional_fields = set(["FdaAdvisoryCommitteeCalendarResponse"])
36
+ serialized = handler(self)
37
+ m = {}
38
+
39
+ for n, f in type(self).model_fields.items():
40
+ k = f.alias or n
41
+ val = serialized.get(k, serialized.get(n))
42
+
43
+ if val != UNSET_SENTINEL:
44
+ if val is not None or k not in optional_fields:
45
+ m[k] = val
46
+
47
+ return m