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,76 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 930408cb76d8
3
+
4
+ from __future__ import annotations
5
+ from enum import Enum
6
+ from finance_dev import models, utils
7
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
8
+ from pydantic import field_serializer, model_serializer
9
+ from typing import Optional
10
+ from typing_extensions import NotRequired, TypedDict
11
+
12
+
13
+ class SearchSymbolItemType(str, Enum, metaclass=utils.OpenEnumMeta):
14
+ r"""Instrument class returned by symbol search."""
15
+
16
+ STOCK = "stock"
17
+ OPTION = "option"
18
+
19
+
20
+ class SearchSymbolItemTypedDict(TypedDict):
21
+ r"""Symbol search result."""
22
+
23
+ description: NotRequired[str]
24
+ r"""Full description of the symbol/company"""
25
+ exchange: NotRequired[str]
26
+ r"""Exchange code where the data originates. Format depends on the upstream data source and may use MIC, ISO 10383, or a vendor-specific code."""
27
+ symbol: NotRequired[str]
28
+ r"""Symbol identifier"""
29
+ ticker: NotRequired[str]
30
+ r"""Symbol ticker"""
31
+ type: NotRequired[SearchSymbolItemType]
32
+ r"""Instrument class returned by symbol search."""
33
+
34
+
35
+ class SearchSymbolItem(BaseModel):
36
+ r"""Symbol search result."""
37
+
38
+ description: Optional[str] = None
39
+ r"""Full description of the symbol/company"""
40
+
41
+ exchange: Optional[str] = None
42
+ r"""Exchange code where the data originates. Format depends on the upstream data source and may use MIC, ISO 10383, or a vendor-specific code."""
43
+
44
+ symbol: Optional[str] = None
45
+ r"""Symbol identifier"""
46
+
47
+ ticker: Optional[str] = None
48
+ r"""Symbol ticker"""
49
+
50
+ type: Optional[SearchSymbolItemType] = None
51
+ r"""Instrument class returned by symbol search."""
52
+
53
+ @field_serializer("type")
54
+ def serialize_type(self, value):
55
+ if isinstance(value, str):
56
+ try:
57
+ return models.SearchSymbolItemType(value)
58
+ except ValueError:
59
+ return value
60
+ return value
61
+
62
+ @model_serializer(mode="wrap")
63
+ def serialize_model(self, handler):
64
+ optional_fields = set(["description", "exchange", "symbol", "ticker", "type"])
65
+ serialized = handler(self)
66
+ m = {}
67
+
68
+ for n, f in type(self).model_fields.items():
69
+ k = f.alias or n
70
+ val = serialized.get(k, serialized.get(n))
71
+
72
+ if val != UNSET_SENTINEL:
73
+ if val is not None or k not in optional_fields:
74
+ m[k] = val
75
+
76
+ return m
@@ -0,0 +1,71 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: ced83a40a9ad
3
+
4
+ from __future__ import annotations
5
+ from enum import Enum
6
+ from finance_dev import models, utils
7
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
8
+ from pydantic import field_serializer, model_serializer
9
+ from typing import Optional
10
+ from typing_extensions import NotRequired, TypedDict
11
+
12
+
13
+ class SearchSymbolResponseItemType(str, Enum, metaclass=utils.OpenEnumMeta):
14
+ r"""Instrument class returned by symbol search."""
15
+
16
+ STOCK = "stock"
17
+ OPTION = "option"
18
+
19
+
20
+ class SearchSymbolResponseItemTypedDict(TypedDict):
21
+ r"""One symbol search result. Use it to let users choose the exact instrument before fetching quotes, research data, or placing orders."""
22
+
23
+ description: NotRequired[str]
24
+ r"""Human-readable company or security name. Show this next to the symbol so users can confirm they selected the intended instrument."""
25
+ symbol: NotRequired[str]
26
+ r"""Symbol value to pass into quote, chart, research, or order endpoints. Use the exact case returned here."""
27
+ tag: NotRequired[str]
28
+ r"""Exchange or source tag, such as `XNAS` for Nasdaq or `OPRA` for options. Use it for display or filtering when multiple instruments share similar symbols."""
29
+ type: NotRequired[SearchSymbolResponseItemType]
30
+ r"""Instrument class returned by symbol search."""
31
+
32
+
33
+ class SearchSymbolResponseItem(BaseModel):
34
+ r"""One symbol search result. Use it to let users choose the exact instrument before fetching quotes, research data, or placing orders."""
35
+
36
+ description: Optional[str] = None
37
+ r"""Human-readable company or security name. Show this next to the symbol so users can confirm they selected the intended instrument."""
38
+
39
+ symbol: Optional[str] = None
40
+ r"""Symbol value to pass into quote, chart, research, or order endpoints. Use the exact case returned here."""
41
+
42
+ tag: Optional[str] = None
43
+ r"""Exchange or source tag, such as `XNAS` for Nasdaq or `OPRA` for options. Use it for display or filtering when multiple instruments share similar symbols."""
44
+
45
+ type: Optional[SearchSymbolResponseItemType] = None
46
+ r"""Instrument class returned by symbol search."""
47
+
48
+ @field_serializer("type")
49
+ def serialize_type(self, value):
50
+ if isinstance(value, str):
51
+ try:
52
+ return models.SearchSymbolResponseItemType(value)
53
+ except ValueError:
54
+ return value
55
+ return value
56
+
57
+ @model_serializer(mode="wrap")
58
+ def serialize_model(self, handler):
59
+ optional_fields = set(["description", "symbol", "tag", "type"])
60
+ serialized = handler(self)
61
+ m = {}
62
+
63
+ for n, f in type(self).model_fields.items():
64
+ k = f.alias or n
65
+ val = serialized.get(k, serialized.get(n))
66
+
67
+ if val != UNSET_SENTINEL:
68
+ if val is not None or k not in optional_fields:
69
+ m[k] = val
70
+
71
+ return m
@@ -0,0 +1,77 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 74b284dc9311
3
+
4
+ from __future__ import annotations
5
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
6
+ from .searchsymbolitem import SearchSymbolItem, SearchSymbolItemTypedDict
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 List, Optional
12
+ from typing_extensions import Annotated, NotRequired, TypedDict
13
+
14
+
15
+ class SearchSymbolsRequestTypedDict(TypedDict):
16
+ query: str
17
+ r"""Text to search. Use plain text for stocks and indices, `.` prefix for options such as `.AAPL`, and `/` prefix for futures such as `/ES`."""
18
+ limit: NotRequired[int]
19
+ r"""Maximum number of results to return. Use smaller values for autocomplete and larger values for search result pages. Default is 20; maximum is 100."""
20
+
21
+
22
+ class SearchSymbolsRequest(BaseModel):
23
+ query: Annotated[
24
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
25
+ ]
26
+ r"""Text to search. Use plain text for stocks and indices, `.` prefix for options such as `.AAPL`, and `/` prefix for futures such as `/ES`."""
27
+
28
+ limit: Annotated[
29
+ Optional[int],
30
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
31
+ ] = 20
32
+ r"""Maximum number of results to return. Use smaller values for autocomplete and larger values for search result pages. Default is 20; maximum is 100."""
33
+
34
+ @model_serializer(mode="wrap")
35
+ def serialize_model(self, handler):
36
+ optional_fields = set(["limit"])
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 SearchSymbolsResponseTypedDict(TypedDict):
52
+ http_meta: HTTPMetadataTypedDict
53
+ search_symbol_items: NotRequired[List[SearchSymbolItemTypedDict]]
54
+ r"""Symbol search results retrieved successfully"""
55
+
56
+
57
+ class SearchSymbolsResponse(BaseModel):
58
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
59
+
60
+ search_symbol_items: Optional[List[SearchSymbolItem]] = None
61
+ r"""Symbol search results retrieved successfully"""
62
+
63
+ @model_serializer(mode="wrap")
64
+ def serialize_model(self, handler):
65
+ optional_fields = set(["SearchSymbolItems"])
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,91 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: a8cb747c0f75
3
+
4
+ from __future__ import annotations
5
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
6
+ import pydantic
7
+ from pydantic import model_serializer
8
+ from typing import Optional
9
+ from typing_extensions import Annotated, NotRequired, TypedDict
10
+
11
+
12
+ class SecFilingTypedDict(TypedDict):
13
+ r"""A single SEC filing with its accession number, form type, dates and document URLs."""
14
+
15
+ accepted_date: NotRequired[str]
16
+ r"""Date and time when the SEC accepted the filing"""
17
+ access_number: NotRequired[str]
18
+ r"""SEC accession number uniquely identifying the filing"""
19
+ cik: NotRequired[str]
20
+ r"""Central Index Key assigned by the SEC"""
21
+ filed_date: NotRequired[str]
22
+ r"""Date when the filing was submitted to the SEC"""
23
+ filing_url: NotRequired[str]
24
+ r"""URL to the complete filing on SEC EDGAR"""
25
+ form: NotRequired[str]
26
+ r"""Type of SEC form (e.g., 10-K, 10-Q, 8-K)"""
27
+ report_url: NotRequired[str]
28
+ r"""URL to the formatted report document"""
29
+ symbol: NotRequired[str]
30
+ r"""Stock ticker symbol"""
31
+
32
+
33
+ class SecFiling(BaseModel):
34
+ r"""A single SEC filing with its accession number, form type, dates and document URLs."""
35
+
36
+ accepted_date: Annotated[Optional[str], pydantic.Field(alias="acceptedDate")] = None
37
+ r"""Date and time when the SEC accepted the filing"""
38
+
39
+ access_number: Annotated[Optional[str], pydantic.Field(alias="accessNumber")] = None
40
+ r"""SEC accession number uniquely identifying the filing"""
41
+
42
+ cik: Optional[str] = None
43
+ r"""Central Index Key assigned by the SEC"""
44
+
45
+ filed_date: Annotated[Optional[str], pydantic.Field(alias="filedDate")] = None
46
+ r"""Date when the filing was submitted to the SEC"""
47
+
48
+ filing_url: Annotated[Optional[str], pydantic.Field(alias="filingUrl")] = None
49
+ r"""URL to the complete filing on SEC EDGAR"""
50
+
51
+ form: Optional[str] = None
52
+ r"""Type of SEC form (e.g., 10-K, 10-Q, 8-K)"""
53
+
54
+ report_url: Annotated[Optional[str], pydantic.Field(alias="reportUrl")] = None
55
+ r"""URL to the formatted report document"""
56
+
57
+ symbol: Optional[str] = None
58
+ r"""Stock ticker symbol"""
59
+
60
+ @model_serializer(mode="wrap")
61
+ def serialize_model(self, handler):
62
+ optional_fields = set(
63
+ [
64
+ "acceptedDate",
65
+ "accessNumber",
66
+ "cik",
67
+ "filedDate",
68
+ "filingUrl",
69
+ "form",
70
+ "reportUrl",
71
+ "symbol",
72
+ ]
73
+ )
74
+ serialized = handler(self)
75
+ m = {}
76
+
77
+ for n, f in type(self).model_fields.items():
78
+ k = f.alias or n
79
+ val = serialized.get(k, serialized.get(n))
80
+
81
+ if val != UNSET_SENTINEL:
82
+ if val is not None or k not in optional_fields:
83
+ m[k] = val
84
+
85
+ return m
86
+
87
+
88
+ try:
89
+ SecFiling.model_rebuild()
90
+ except NameError:
91
+ pass
@@ -0,0 +1,39 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 0c818c49181e
3
+
4
+ from __future__ import annotations
5
+ from .secfiling import SecFiling, SecFilingTypedDict
6
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
7
+ from pydantic import model_serializer
8
+ from typing import List, Optional
9
+ from typing_extensions import NotRequired, TypedDict
10
+
11
+
12
+ class SecFilingsResponseTypedDict(TypedDict):
13
+ r"""Response containing SEC filings for a symbol."""
14
+
15
+ filings: NotRequired[List[SecFilingTypedDict]]
16
+ r"""Array of SEC filings"""
17
+
18
+
19
+ class SecFilingsResponse(BaseModel):
20
+ r"""Response containing SEC filings for a symbol."""
21
+
22
+ filings: Optional[List[SecFiling]] = None
23
+ r"""Array of SEC filings"""
24
+
25
+ @model_serializer(mode="wrap")
26
+ def serialize_model(self, handler):
27
+ optional_fields = set(["filings"])
28
+ serialized = handler(self)
29
+ m = {}
30
+
31
+ for n, f in type(self).model_fields.items():
32
+ k = f.alias or n
33
+ val = serialized.get(k, serialized.get(n))
34
+
35
+ if val != UNSET_SENTINEL:
36
+ if val is not None or k not in optional_fields:
37
+ m[k] = val
38
+
39
+ return m
@@ -0,0 +1,50 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 5e4f1e9ca5a0
3
+
4
+ from __future__ import annotations
5
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
6
+ import pydantic
7
+ from pydantic import model_serializer
8
+ from typing import Optional
9
+ from typing_extensions import Annotated, NotRequired, TypedDict
10
+
11
+
12
+ class SectorAvgChangeTypedDict(TypedDict):
13
+ r"""Average percentage move by sector. Use it to compare which sectors are leading or lagging the market."""
14
+
15
+ avg_change: NotRequired[float]
16
+ r"""Average percentage change for the sector"""
17
+ sector: NotRequired[str]
18
+ r"""Sector name, such as Technology or Financials. Use it as the label in sector performance views."""
19
+
20
+
21
+ class SectorAvgChange(BaseModel):
22
+ r"""Average percentage move by sector. Use it to compare which sectors are leading or lagging the market."""
23
+
24
+ avg_change: Annotated[Optional[float], pydantic.Field(alias="avgChange")] = None
25
+ r"""Average percentage change for the sector"""
26
+
27
+ sector: Optional[str] = None
28
+ r"""Sector name, such as Technology or Financials. Use it as the label in sector performance views."""
29
+
30
+ @model_serializer(mode="wrap")
31
+ def serialize_model(self, handler):
32
+ optional_fields = set(["avgChange", "sector"])
33
+ serialized = handler(self)
34
+ m = {}
35
+
36
+ for n, f in type(self).model_fields.items():
37
+ k = f.alias or n
38
+ val = serialized.get(k, serialized.get(n))
39
+
40
+ if val != UNSET_SENTINEL:
41
+ if val is not None or k not in optional_fields:
42
+ m[k] = val
43
+
44
+ return m
45
+
46
+
47
+ try:
48
+ SectorAvgChange.model_rebuild()
49
+ except NameError:
50
+ pass
@@ -0,0 +1,59 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 52fa621c8b19
3
+
4
+ from __future__ import annotations
5
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
6
+ from finance_dev.utils import FieldMetadata, SecurityMetadata
7
+ from pydantic import model_serializer
8
+ from typing import Optional
9
+ from typing_extensions import Annotated, NotRequired, TypedDict
10
+
11
+
12
+ class SecurityTypedDict(TypedDict):
13
+ client_id: NotRequired[str]
14
+ client_secret: NotRequired[str]
15
+ token_url: NotRequired[str]
16
+
17
+
18
+ class Security(BaseModel):
19
+ client_id: Annotated[
20
+ Optional[str],
21
+ FieldMetadata(
22
+ security=SecurityMetadata(
23
+ scheme=True,
24
+ scheme_type="oauth2",
25
+ sub_type="client_credentials",
26
+ field_name="clientID",
27
+ )
28
+ ),
29
+ ] = None
30
+
31
+ client_secret: Annotated[
32
+ Optional[str],
33
+ FieldMetadata(
34
+ security=SecurityMetadata(
35
+ scheme=True,
36
+ scheme_type="oauth2",
37
+ sub_type="client_credentials",
38
+ field_name="clientSecret",
39
+ )
40
+ ),
41
+ ] = None
42
+
43
+ token_url: Optional[str] = "https://api.aries.com/v1/oauth2/token"
44
+
45
+ @model_serializer(mode="wrap")
46
+ def serialize_model(self, handler):
47
+ optional_fields = set(["ClientID", "ClientSecret", "TokenURL"])
48
+ serialized = handler(self)
49
+ m = {}
50
+
51
+ for n, f in type(self).model_fields.items():
52
+ k = f.alias or n
53
+ val = serialized.get(k, serialized.get(n))
54
+
55
+ if val != UNSET_SENTINEL:
56
+ if val is not None or k not in optional_fields:
57
+ m[k] = val
58
+
59
+ return m
@@ -0,0 +1,16 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 4be879933929
3
+
4
+ from __future__ import annotations
5
+ from enum import Enum
6
+ from finance_dev import utils
7
+
8
+
9
+ class SecurityTypeEnum(str, Enum, metaclass=utils.OpenEnumMeta):
10
+ r"""What kind of instrument the order is for. Pick one:
11
+ - `CS` — Common Stock (equity / ETF).
12
+ - `OPT` — Option contract (call or put).
13
+ """
14
+
15
+ CS = "CS"
16
+ OPT = "OPT"
@@ -0,0 +1,126 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 499d5a6020e4
3
+
4
+ from __future__ import annotations
5
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
6
+ import pydantic
7
+ from pydantic import model_serializer
8
+ from typing import List, Optional
9
+ from typing_extensions import Annotated, NotRequired, TypedDict
10
+
11
+
12
+ class ShortInterestResponseResultTypedDict(TypedDict):
13
+ avg_daily_volume: NotRequired[int]
14
+ r"""Average daily trading volume in shares used for the days-to-cover calculation"""
15
+ days_to_cover: NotRequired[float]
16
+ r"""Number of days of average volume needed to cover the short interest"""
17
+ settlement_date: NotRequired[str]
18
+ r"""Settlement date of the short interest report (YYYY-MM-DD)"""
19
+ short_interest: NotRequired[int]
20
+ r"""Total number of shares sold short and not yet covered as of the settlement date"""
21
+ ticker: NotRequired[str]
22
+ r"""Stock ticker symbol"""
23
+
24
+
25
+ class ShortInterestResponseResult(BaseModel):
26
+ avg_daily_volume: Annotated[
27
+ Optional[int], pydantic.Field(alias="avgDailyVolume")
28
+ ] = None
29
+ r"""Average daily trading volume in shares used for the days-to-cover calculation"""
30
+
31
+ days_to_cover: Annotated[Optional[float], pydantic.Field(alias="daysToCover")] = (
32
+ None
33
+ )
34
+ r"""Number of days of average volume needed to cover the short interest"""
35
+
36
+ settlement_date: Annotated[
37
+ Optional[str], pydantic.Field(alias="settlementDate")
38
+ ] = None
39
+ r"""Settlement date of the short interest report (YYYY-MM-DD)"""
40
+
41
+ short_interest: Annotated[Optional[int], pydantic.Field(alias="shortInterest")] = (
42
+ None
43
+ )
44
+ r"""Total number of shares sold short and not yet covered as of the settlement date"""
45
+
46
+ ticker: Optional[str] = None
47
+ r"""Stock ticker symbol"""
48
+
49
+ @model_serializer(mode="wrap")
50
+ def serialize_model(self, handler):
51
+ optional_fields = set(
52
+ [
53
+ "avgDailyVolume",
54
+ "daysToCover",
55
+ "settlementDate",
56
+ "shortInterest",
57
+ "ticker",
58
+ ]
59
+ )
60
+ serialized = handler(self)
61
+ m = {}
62
+
63
+ for n, f in type(self).model_fields.items():
64
+ k = f.alias or n
65
+ val = serialized.get(k, serialized.get(n))
66
+
67
+ if val != UNSET_SENTINEL:
68
+ if val is not None or k not in optional_fields:
69
+ m[k] = val
70
+
71
+ return m
72
+
73
+
74
+ class ShortInterestResponseTypedDict(TypedDict):
75
+ r"""Short interest records per ticker, including shares sold short, average daily volume and days to cover, sourced from Polygon."""
76
+
77
+ next_url: NotRequired[str]
78
+ r"""URL for next page of results"""
79
+ request_id: NotRequired[str]
80
+ r"""Request identifier returned by the upstream data provider"""
81
+ results: NotRequired[List[ShortInterestResponseResultTypedDict]]
82
+ r"""Short interest records, one per ticker and settlement date"""
83
+ status: NotRequired[str]
84
+ r"""Status string from the upstream data provider — typically `OK` for a successful response. Treat any other value as an error indicator alongside the HTTP status code."""
85
+
86
+
87
+ class ShortInterestResponse(BaseModel):
88
+ r"""Short interest records per ticker, including shares sold short, average daily volume and days to cover, sourced from Polygon."""
89
+
90
+ next_url: Annotated[Optional[str], pydantic.Field(alias="nextUrl")] = None
91
+ r"""URL for next page of results"""
92
+
93
+ request_id: Annotated[Optional[str], pydantic.Field(alias="requestId")] = None
94
+ r"""Request identifier returned by the upstream data provider"""
95
+
96
+ results: Optional[List[ShortInterestResponseResult]] = None
97
+ r"""Short interest records, one per ticker and settlement date"""
98
+
99
+ status: Optional[str] = None
100
+ r"""Status string from the upstream data provider — typically `OK` for a successful response. Treat any other value as an error indicator alongside the HTTP status code."""
101
+
102
+ @model_serializer(mode="wrap")
103
+ def serialize_model(self, handler):
104
+ optional_fields = set(["nextUrl", "requestId", "results", "status"])
105
+ serialized = handler(self)
106
+ m = {}
107
+
108
+ for n, f in type(self).model_fields.items():
109
+ k = f.alias or n
110
+ val = serialized.get(k, serialized.get(n))
111
+
112
+ if val != UNSET_SENTINEL:
113
+ if val is not None or k not in optional_fields:
114
+ m[k] = val
115
+
116
+ return m
117
+
118
+
119
+ try:
120
+ ShortInterestResponseResult.model_rebuild()
121
+ except NameError:
122
+ pass
123
+ try:
124
+ ShortInterestResponse.model_rebuild()
125
+ except NameError:
126
+ pass