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,333 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: ac15990e23d0
3
+
4
+ from __future__ import annotations
5
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
6
+ from .shortvolumeresponse import ShortVolumeResponse, ShortVolumeResponseTypedDict
7
+ from datetime import date
8
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
9
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
10
+ import pydantic
11
+ from pydantic import model_serializer
12
+ from typing import Callable, Optional
13
+ from typing_extensions import Annotated, NotRequired, TypedDict
14
+
15
+
16
+ class GetShortVolumeRequestTypedDict(TypedDict):
17
+ ticker: NotRequired[str]
18
+ r"""Single ticker symbol filter. Enter one ticker such as AAPL to narrow results to one company."""
19
+ tickers_any_of: NotRequired[str]
20
+ r"""Comma-separated list of ticker symbols."""
21
+ ticker_after: NotRequired[str]
22
+ r"""Ticker pagination lower bound. Returns symbols alphabetically after this ticker, excluding the ticker itself."""
23
+ ticker_from: NotRequired[str]
24
+ r"""Ticker greater than or equal (inclusive)"""
25
+ ticker_before: NotRequired[str]
26
+ r"""Ticker pagination upper bound. Returns symbols alphabetically before this ticker, excluding the ticker itself."""
27
+ ticker_to: NotRequired[str]
28
+ r"""Ticker less than or equal (inclusive)"""
29
+ date_: NotRequired[date]
30
+ r"""Exact date in YYYY-MM-DD format. Use this when you want one specific calendar day."""
31
+ dates: NotRequired[str]
32
+ r"""Comma-separated list of dates in YYYY-MM-DD format. Use this when you want several specific dates in one request."""
33
+ date_after: NotRequired[date]
34
+ r"""After-date filter. Returns records after this date, excluding the date itself."""
35
+ date_from: NotRequired[date]
36
+ r"""Start-date filter. Returns records on or after this date."""
37
+ date_before: NotRequired[date]
38
+ r"""Before-date filter. Returns records before this date, excluding the date itself."""
39
+ date_to: NotRequired[date]
40
+ r"""End-date filter. Returns records on or before this date."""
41
+ short_volume_ratio: NotRequired[float]
42
+ r"""Exact short-volume ratio filter. Use it when you need records matching one specific ratio value."""
43
+ short_volume_ratio_list: NotRequired[str]
44
+ r"""Comma-separated list of short volume ratios"""
45
+ short_volume_ratio_above: NotRequired[float]
46
+ r"""Short volume ratio greater than (exclusive)"""
47
+ short_volume_ratio_min: NotRequired[float]
48
+ r"""Short volume ratio greater than or equal (inclusive)"""
49
+ short_volume_ratio_below: NotRequired[float]
50
+ r"""Short volume ratio less than (exclusive)"""
51
+ short_volume_ratio_max: NotRequired[float]
52
+ r"""Short volume ratio less than or equal (inclusive)"""
53
+ total_volume: NotRequired[int]
54
+ r"""Exact total-volume filter. Use it when you need records matching one specific volume value."""
55
+ total_volume_list: NotRequired[str]
56
+ r"""Comma-separated list of total volumes"""
57
+ total_volume_above: NotRequired[int]
58
+ r"""Total volume greater than (exclusive)"""
59
+ total_volume_min: NotRequired[int]
60
+ r"""Total volume greater than or equal (inclusive)"""
61
+ total_volume_below: NotRequired[int]
62
+ r"""Total-volume upper-bound filter. Returns records below this value, excluding the value itself."""
63
+ total_volume_max: NotRequired[int]
64
+ r"""Total volume less than or equal (inclusive)"""
65
+ limit: NotRequired[int]
66
+ r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits."""
67
+ sort: NotRequired[str]
68
+ r"""A comma-separated list of sort columns. For each column, append `.asc` or `.desc` to specify direction. Defaults to `ticker.asc` when not specified."""
69
+ next: NotRequired[str]
70
+ r"""Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page."""
71
+
72
+
73
+ class GetShortVolumeRequest(BaseModel):
74
+ ticker: Annotated[
75
+ Optional[str],
76
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
77
+ ] = None
78
+ r"""Single ticker symbol filter. Enter one ticker such as AAPL to narrow results to one company."""
79
+
80
+ tickers_any_of: Annotated[
81
+ Optional[str],
82
+ pydantic.Field(alias="tickersAnyOf"),
83
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
84
+ ] = None
85
+ r"""Comma-separated list of ticker symbols."""
86
+
87
+ ticker_after: Annotated[
88
+ Optional[str],
89
+ pydantic.Field(alias="tickerAfter"),
90
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
91
+ ] = None
92
+ r"""Ticker pagination lower bound. Returns symbols alphabetically after this ticker, excluding the ticker itself."""
93
+
94
+ ticker_from: Annotated[
95
+ Optional[str],
96
+ pydantic.Field(alias="tickerFrom"),
97
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
98
+ ] = None
99
+ r"""Ticker greater than or equal (inclusive)"""
100
+
101
+ ticker_before: Annotated[
102
+ Optional[str],
103
+ pydantic.Field(alias="tickerBefore"),
104
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
105
+ ] = None
106
+ r"""Ticker pagination upper bound. Returns symbols alphabetically before this ticker, excluding the ticker itself."""
107
+
108
+ ticker_to: Annotated[
109
+ Optional[str],
110
+ pydantic.Field(alias="tickerTo"),
111
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
112
+ ] = None
113
+ r"""Ticker less than or equal (inclusive)"""
114
+
115
+ date_: Annotated[
116
+ Optional[date],
117
+ pydantic.Field(alias="date"),
118
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
119
+ ] = None
120
+ r"""Exact date in YYYY-MM-DD format. Use this when you want one specific calendar day."""
121
+
122
+ dates: Annotated[
123
+ Optional[str],
124
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
125
+ ] = None
126
+ r"""Comma-separated list of dates in YYYY-MM-DD format. Use this when you want several specific dates in one request."""
127
+
128
+ date_after: Annotated[
129
+ Optional[date],
130
+ pydantic.Field(alias="dateAfter"),
131
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
132
+ ] = None
133
+ r"""After-date filter. Returns records after this date, excluding the date itself."""
134
+
135
+ date_from: Annotated[
136
+ Optional[date],
137
+ pydantic.Field(alias="dateFrom"),
138
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
139
+ ] = None
140
+ r"""Start-date filter. Returns records on or after this date."""
141
+
142
+ date_before: Annotated[
143
+ Optional[date],
144
+ pydantic.Field(alias="dateBefore"),
145
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
146
+ ] = None
147
+ r"""Before-date filter. Returns records before this date, excluding the date itself."""
148
+
149
+ date_to: Annotated[
150
+ Optional[date],
151
+ pydantic.Field(alias="dateTo"),
152
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
153
+ ] = None
154
+ r"""End-date filter. Returns records on or before this date."""
155
+
156
+ short_volume_ratio: Annotated[
157
+ Optional[float],
158
+ pydantic.Field(alias="shortVolumeRatio"),
159
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
160
+ ] = None
161
+ r"""Exact short-volume ratio filter. Use it when you need records matching one specific ratio value."""
162
+
163
+ short_volume_ratio_list: Annotated[
164
+ Optional[str],
165
+ pydantic.Field(alias="shortVolumeRatioList"),
166
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
167
+ ] = None
168
+ r"""Comma-separated list of short volume ratios"""
169
+
170
+ short_volume_ratio_above: Annotated[
171
+ Optional[float],
172
+ pydantic.Field(alias="shortVolumeRatioAbove"),
173
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
174
+ ] = None
175
+ r"""Short volume ratio greater than (exclusive)"""
176
+
177
+ short_volume_ratio_min: Annotated[
178
+ Optional[float],
179
+ pydantic.Field(alias="shortVolumeRatioMin"),
180
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
181
+ ] = None
182
+ r"""Short volume ratio greater than or equal (inclusive)"""
183
+
184
+ short_volume_ratio_below: Annotated[
185
+ Optional[float],
186
+ pydantic.Field(alias="shortVolumeRatioBelow"),
187
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
188
+ ] = None
189
+ r"""Short volume ratio less than (exclusive)"""
190
+
191
+ short_volume_ratio_max: Annotated[
192
+ Optional[float],
193
+ pydantic.Field(alias="shortVolumeRatioMax"),
194
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
195
+ ] = None
196
+ r"""Short volume ratio less than or equal (inclusive)"""
197
+
198
+ total_volume: Annotated[
199
+ Optional[int],
200
+ pydantic.Field(alias="totalVolume"),
201
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
202
+ ] = None
203
+ r"""Exact total-volume filter. Use it when you need records matching one specific volume value."""
204
+
205
+ total_volume_list: Annotated[
206
+ Optional[str],
207
+ pydantic.Field(alias="totalVolumeList"),
208
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
209
+ ] = None
210
+ r"""Comma-separated list of total volumes"""
211
+
212
+ total_volume_above: Annotated[
213
+ Optional[int],
214
+ pydantic.Field(alias="totalVolumeAbove"),
215
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
216
+ ] = None
217
+ r"""Total volume greater than (exclusive)"""
218
+
219
+ total_volume_min: Annotated[
220
+ Optional[int],
221
+ pydantic.Field(alias="totalVolumeMin"),
222
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
223
+ ] = None
224
+ r"""Total volume greater than or equal (inclusive)"""
225
+
226
+ total_volume_below: Annotated[
227
+ Optional[int],
228
+ pydantic.Field(alias="totalVolumeBelow"),
229
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
230
+ ] = None
231
+ r"""Total-volume upper-bound filter. Returns records below this value, excluding the value itself."""
232
+
233
+ total_volume_max: Annotated[
234
+ Optional[int],
235
+ pydantic.Field(alias="totalVolumeMax"),
236
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
237
+ ] = None
238
+ r"""Total volume less than or equal (inclusive)"""
239
+
240
+ limit: Annotated[
241
+ Optional[int],
242
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
243
+ ] = None
244
+ r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits."""
245
+
246
+ sort: Annotated[
247
+ Optional[str],
248
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
249
+ ] = None
250
+ r"""A comma-separated list of sort columns. For each column, append `.asc` or `.desc` to specify direction. Defaults to `ticker.asc` when not specified."""
251
+
252
+ next: Annotated[
253
+ Optional[str],
254
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
255
+ ] = None
256
+ r"""Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page."""
257
+
258
+ @model_serializer(mode="wrap")
259
+ def serialize_model(self, handler):
260
+ optional_fields = set(
261
+ [
262
+ "ticker",
263
+ "tickersAnyOf",
264
+ "tickerAfter",
265
+ "tickerFrom",
266
+ "tickerBefore",
267
+ "tickerTo",
268
+ "date",
269
+ "dates",
270
+ "dateAfter",
271
+ "dateFrom",
272
+ "dateBefore",
273
+ "dateTo",
274
+ "shortVolumeRatio",
275
+ "shortVolumeRatioList",
276
+ "shortVolumeRatioAbove",
277
+ "shortVolumeRatioMin",
278
+ "shortVolumeRatioBelow",
279
+ "shortVolumeRatioMax",
280
+ "totalVolume",
281
+ "totalVolumeList",
282
+ "totalVolumeAbove",
283
+ "totalVolumeMin",
284
+ "totalVolumeBelow",
285
+ "totalVolumeMax",
286
+ "limit",
287
+ "sort",
288
+ "next",
289
+ ]
290
+ )
291
+ serialized = handler(self)
292
+ m = {}
293
+
294
+ for n, f in type(self).model_fields.items():
295
+ k = f.alias or n
296
+ val = serialized.get(k, serialized.get(n))
297
+
298
+ if val != UNSET_SENTINEL:
299
+ if val is not None or k not in optional_fields:
300
+ m[k] = val
301
+
302
+ return m
303
+
304
+
305
+ class GetShortVolumeResponseTypedDict(TypedDict):
306
+ http_meta: HTTPMetadataTypedDict
307
+ short_volume_response: NotRequired[ShortVolumeResponseTypedDict]
308
+ r"""Successful response"""
309
+
310
+
311
+ class GetShortVolumeResponse(BaseModel):
312
+ next: Callable[[], Optional[GetShortVolumeResponse]]
313
+
314
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
315
+
316
+ short_volume_response: Optional[ShortVolumeResponse] = None
317
+ r"""Successful response"""
318
+
319
+ @model_serializer(mode="wrap")
320
+ def serialize_model(self, handler):
321
+ optional_fields = set(["ShortVolumeResponse"])
322
+ serialized = handler(self)
323
+ m = {}
324
+
325
+ for n, f in type(self).model_fields.items():
326
+ k = f.alias or n
327
+ val = serialized.get(k, serialized.get(n))
328
+
329
+ if val != UNSET_SENTINEL:
330
+ if val is not None or k not in optional_fields:
331
+ m[k] = val
332
+
333
+ return m
@@ -0,0 +1,90 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: bc1c52b3a1a3
3
+
4
+ from __future__ import annotations
5
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
6
+ from .socialsentimentresponse import (
7
+ SocialSentimentResponse,
8
+ SocialSentimentResponseTypedDict,
9
+ )
10
+ from datetime import date
11
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
12
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
13
+ import pydantic
14
+ from pydantic import model_serializer
15
+ from typing import Optional
16
+ from typing_extensions import Annotated, NotRequired, TypedDict
17
+
18
+
19
+ class GetSocialSentimentRequestTypedDict(TypedDict):
20
+ symbol: str
21
+ r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`."""
22
+ from_: NotRequired[date]
23
+ r"""Start of the date window, inclusive. Format: `YYYY-MM-DD` (e.g. `2024-01-01`)."""
24
+ to: NotRequired[date]
25
+ r"""End of the date window, inclusive. Format: `YYYY-MM-DD` (e.g. `2024-12-31`)."""
26
+
27
+
28
+ class GetSocialSentimentRequest(BaseModel):
29
+ symbol: Annotated[
30
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
31
+ ]
32
+ r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`."""
33
+
34
+ from_: Annotated[
35
+ Optional[date],
36
+ pydantic.Field(alias="from"),
37
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
38
+ ] = None
39
+ r"""Start of the date window, inclusive. Format: `YYYY-MM-DD` (e.g. `2024-01-01`)."""
40
+
41
+ to: Annotated[
42
+ Optional[date],
43
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
44
+ ] = None
45
+ r"""End of the date window, inclusive. Format: `YYYY-MM-DD` (e.g. `2024-12-31`)."""
46
+
47
+ @model_serializer(mode="wrap")
48
+ def serialize_model(self, handler):
49
+ optional_fields = set(["from", "to"])
50
+ serialized = handler(self)
51
+ m = {}
52
+
53
+ for n, f in type(self).model_fields.items():
54
+ k = f.alias or n
55
+ val = serialized.get(k, serialized.get(n))
56
+
57
+ if val != UNSET_SENTINEL:
58
+ if val is not None or k not in optional_fields:
59
+ m[k] = val
60
+
61
+ return m
62
+
63
+
64
+ class GetSocialSentimentResponseTypedDict(TypedDict):
65
+ http_meta: HTTPMetadataTypedDict
66
+ social_sentiment_response: NotRequired[SocialSentimentResponseTypedDict]
67
+ r"""Social sentiment data."""
68
+
69
+
70
+ class GetSocialSentimentResponse(BaseModel):
71
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
72
+
73
+ social_sentiment_response: Optional[SocialSentimentResponse] = None
74
+ r"""Social sentiment data."""
75
+
76
+ @model_serializer(mode="wrap")
77
+ def serialize_model(self, handler):
78
+ optional_fields = set(["SocialSentimentResponse"])
79
+ serialized = handler(self)
80
+ m = {}
81
+
82
+ for n, f in type(self).model_fields.items():
83
+ k = f.alias or n
84
+ val = serialized.get(k, serialized.get(n))
85
+
86
+ if val != UNSET_SENTINEL:
87
+ if val is not None or k not in optional_fields:
88
+ m[k] = val
89
+
90
+ return m
@@ -0,0 +1,112 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 0e84dd9e77a9
3
+
4
+ from __future__ import annotations
5
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
6
+ from .spinoffsresponse import SpinoffsResponse, SpinoffsResponseTypedDict
7
+ from .tenderofferidentifiertype import TenderOfferIdentifierType
8
+ from datetime import date
9
+ from finance_dev import models
10
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
11
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
12
+ import pydantic
13
+ from pydantic import field_serializer, model_serializer
14
+ from typing import Optional
15
+ from typing_extensions import Annotated, NotRequired, TypedDict
16
+
17
+
18
+ class GetSpinoffsRequestTypedDict(TypedDict):
19
+ identifier: str
20
+ r"""Identifier value for the company you're querying. The format depends on `identifierType`:
21
+ - `Symbol` — exchange ticker (e.g. `AAPL`).
22
+ - `CUSIP` — 9-character U.S./Canadian identifier (e.g. `037833100`).
23
+ - `ISIN` — 12-character international identifier (e.g. `US0378331005`).
24
+ - `SEDOL` — 7-character UK identifier.
25
+ - `Valoren` — Swiss security identifier.
26
+ - `FIGI` — Bloomberg Financial Instrument Global Identifier.
27
+ - `CompositeFIGI` — country-level composite FIGI.
28
+
29
+ Must match the kind selected in `identifierType`.
30
+ """
31
+ identifier_type: TenderOfferIdentifierType
32
+ r"""Tells the API how to interpret `identifier`. See `TenderOfferIdentifierType` for the full set of supported values and what each one means."""
33
+ start_date: date
34
+ r"""Start of the spin-off announcement window, inclusive. Format: `YYYY-MM-DD` (e.g. `2020-01-01`)."""
35
+ end_date: date
36
+ r"""End of the spin-off announcement window, inclusive. Format: `YYYY-MM-DD` (e.g. `2020-12-31`)."""
37
+
38
+
39
+ class GetSpinoffsRequest(BaseModel):
40
+ identifier: Annotated[
41
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
42
+ ]
43
+ r"""Identifier value for the company you're querying. The format depends on `identifierType`:
44
+ - `Symbol` — exchange ticker (e.g. `AAPL`).
45
+ - `CUSIP` — 9-character U.S./Canadian identifier (e.g. `037833100`).
46
+ - `ISIN` — 12-character international identifier (e.g. `US0378331005`).
47
+ - `SEDOL` — 7-character UK identifier.
48
+ - `Valoren` — Swiss security identifier.
49
+ - `FIGI` — Bloomberg Financial Instrument Global Identifier.
50
+ - `CompositeFIGI` — country-level composite FIGI.
51
+
52
+ Must match the kind selected in `identifierType`.
53
+ """
54
+
55
+ identifier_type: Annotated[
56
+ TenderOfferIdentifierType,
57
+ pydantic.Field(alias="identifierType"),
58
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
59
+ ]
60
+ r"""Tells the API how to interpret `identifier`. See `TenderOfferIdentifierType` for the full set of supported values and what each one means."""
61
+
62
+ start_date: Annotated[
63
+ date,
64
+ pydantic.Field(alias="startDate"),
65
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
66
+ ]
67
+ r"""Start of the spin-off announcement window, inclusive. Format: `YYYY-MM-DD` (e.g. `2020-01-01`)."""
68
+
69
+ end_date: Annotated[
70
+ date,
71
+ pydantic.Field(alias="endDate"),
72
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
73
+ ]
74
+ r"""End of the spin-off announcement window, inclusive. Format: `YYYY-MM-DD` (e.g. `2020-12-31`)."""
75
+
76
+ @field_serializer("identifier_type")
77
+ def serialize_identifier_type(self, value):
78
+ if isinstance(value, str):
79
+ try:
80
+ return models.TenderOfferIdentifierType(value)
81
+ except ValueError:
82
+ return value
83
+ return value
84
+
85
+
86
+ class GetSpinoffsResponseTypedDict(TypedDict):
87
+ http_meta: HTTPMetadataTypedDict
88
+ spinoffs_response: NotRequired[SpinoffsResponseTypedDict]
89
+ r"""Successful response with spinoffs data"""
90
+
91
+
92
+ class GetSpinoffsResponse(BaseModel):
93
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
94
+
95
+ spinoffs_response: Optional[SpinoffsResponse] = None
96
+ r"""Successful response with spinoffs data"""
97
+
98
+ @model_serializer(mode="wrap")
99
+ def serialize_model(self, handler):
100
+ optional_fields = set(["SpinoffsResponse"])
101
+ serialized = handler(self)
102
+ m = {}
103
+
104
+ for n, f in type(self).model_fields.items():
105
+ k = f.alias or n
106
+ val = serialized.get(k, serialized.get(n))
107
+
108
+ if val != UNSET_SENTINEL:
109
+ if val is not None or k not in optional_fields:
110
+ m[k] = val
111
+
112
+ return m