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,82 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 4622e92023e1
3
+
4
+ from __future__ import annotations
5
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
6
+ from .stocksnapshotsresponse import (
7
+ StockSnapshotsResponse,
8
+ StockSnapshotsResponseTypedDict,
9
+ )
10
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
11
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
12
+ import pydantic
13
+ from pydantic import model_serializer
14
+ from typing import Optional
15
+ from typing_extensions import Annotated, NotRequired, TypedDict
16
+
17
+
18
+ class GetStockSnapshotsRequestTypedDict(TypedDict):
19
+ tickers: NotRequired[str]
20
+ r"""Comma-separated list of tickers, such as AAPL,MSFT. Use this to request several companies in one call."""
21
+ include_otc: NotRequired[bool]
22
+ r"""Whether to include over-the-counter securities. Use true only when your product needs OTC market coverage."""
23
+
24
+
25
+ class GetStockSnapshotsRequest(BaseModel):
26
+ tickers: Annotated[
27
+ Optional[str],
28
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
29
+ ] = None
30
+ r"""Comma-separated list of tickers, such as AAPL,MSFT. Use this to request several companies in one call."""
31
+
32
+ include_otc: Annotated[
33
+ Optional[bool],
34
+ pydantic.Field(alias="includeOtc"),
35
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
36
+ ] = None
37
+ r"""Whether to include over-the-counter securities. Use true only when your product needs OTC market coverage."""
38
+
39
+ @model_serializer(mode="wrap")
40
+ def serialize_model(self, handler):
41
+ optional_fields = set(["tickers", "includeOtc"])
42
+ serialized = handler(self)
43
+ m = {}
44
+
45
+ for n, f in type(self).model_fields.items():
46
+ k = f.alias or n
47
+ val = serialized.get(k, serialized.get(n))
48
+
49
+ if val != UNSET_SENTINEL:
50
+ if val is not None or k not in optional_fields:
51
+ m[k] = val
52
+
53
+ return m
54
+
55
+
56
+ class GetStockSnapshotsResponseTypedDict(TypedDict):
57
+ http_meta: HTTPMetadataTypedDict
58
+ stock_snapshots_response: NotRequired[StockSnapshotsResponseTypedDict]
59
+ r"""Successful response"""
60
+
61
+
62
+ class GetStockSnapshotsResponse(BaseModel):
63
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
64
+
65
+ stock_snapshots_response: Optional[StockSnapshotsResponse] = None
66
+ r"""Successful response"""
67
+
68
+ @model_serializer(mode="wrap")
69
+ def serialize_model(self, handler):
70
+ optional_fields = set(["StockSnapshotsResponse"])
71
+ serialized = handler(self)
72
+ m = {}
73
+
74
+ for n, f in type(self).model_fields.items():
75
+ k = f.alias or n
76
+ val = serialized.get(k, serialized.get(n))
77
+
78
+ if val != UNSET_SENTINEL:
79
+ if val is not None or k not in optional_fields:
80
+ m[k] = val
81
+
82
+ return m
@@ -0,0 +1,243 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: f5fbdb6c6f0e
3
+
4
+ from __future__ import annotations
5
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
6
+ from .stocksplitsresponse import StockSplitsResponse, StockSplitsResponseTypedDict
7
+ from datetime import date
8
+ from enum import Enum
9
+ from finance_dev import models, utils
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 Callable, Optional
15
+ from typing_extensions import Annotated, NotRequired, TypedDict
16
+
17
+
18
+ class GetStockSplitsAdjustmentType(str, Enum, metaclass=utils.OpenEnumMeta):
19
+ r"""Exact type: forward_split, reverse_split, stock_dividend"""
20
+
21
+ FORWARD_SPLIT = "forward_split"
22
+ REVERSE_SPLIT = "reverse_split"
23
+ STOCK_DIVIDEND = "stock_dividend"
24
+
25
+
26
+ class GetStockSplitsRequestTypedDict(TypedDict):
27
+ ticker: NotRequired[str]
28
+ r"""Single ticker symbol only, such as AAPL. Do not send a comma-separated list here; if you need multiple symbols, use `tickersAnyOf` instead."""
29
+ tickers_any_of: NotRequired[str]
30
+ r"""Comma-separated list of ticker symbols."""
31
+ ticker_from: NotRequired[str]
32
+ r"""Filter tickers >= this value (inclusive)"""
33
+ ticker_after: NotRequired[str]
34
+ r"""Filter tickers > this value (exclusive)"""
35
+ ticker_to: NotRequired[str]
36
+ r"""Filter tickers <= this value (inclusive)"""
37
+ ticker_before: NotRequired[str]
38
+ r"""Filter tickers < this value (exclusive)"""
39
+ execution_date: NotRequired[date]
40
+ r"""Exact execution date in YYYY-MM-DD format"""
41
+ execution_date_from: NotRequired[date]
42
+ r"""Filter to splits that executed on or after this date (inclusive). Format: `YYYY-MM-DD`."""
43
+ execution_date_after: NotRequired[date]
44
+ r"""Filter to splits that executed strictly after this date (exclusive). Format: `YYYY-MM-DD`."""
45
+ execution_date_to: NotRequired[date]
46
+ r"""Filter to splits that executed on or before this date (inclusive). Format: `YYYY-MM-DD`."""
47
+ execution_date_before: NotRequired[date]
48
+ r"""Filter to splits that executed strictly before this date (exclusive). Format: `YYYY-MM-DD`."""
49
+ adjustment_type: NotRequired[GetStockSplitsAdjustmentType]
50
+ r"""Exact type: forward_split, reverse_split, stock_dividend"""
51
+ adjustment_types: NotRequired[str]
52
+ r"""Comma-separated list of adjustment types"""
53
+ limit: NotRequired[int]
54
+ r"""Maximum number of results to return. Range: 1 to 5000. Use smaller values for UI pages, larger for batch exports."""
55
+ sort: NotRequired[str]
56
+ 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. Examples: `execution_date.desc` or `ticker.asc,execution_date.desc`."""
57
+ next: NotRequired[str]
58
+ r"""Pagination cursor from previous response"""
59
+
60
+
61
+ class GetStockSplitsRequest(BaseModel):
62
+ ticker: Annotated[
63
+ Optional[str],
64
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
65
+ ] = None
66
+ r"""Single ticker symbol only, such as AAPL. Do not send a comma-separated list here; if you need multiple symbols, use `tickersAnyOf` instead."""
67
+
68
+ tickers_any_of: Annotated[
69
+ Optional[str],
70
+ pydantic.Field(alias="tickersAnyOf"),
71
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
72
+ ] = None
73
+ r"""Comma-separated list of ticker symbols."""
74
+
75
+ ticker_from: Annotated[
76
+ Optional[str],
77
+ pydantic.Field(alias="tickerFrom"),
78
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
79
+ ] = None
80
+ r"""Filter tickers >= this value (inclusive)"""
81
+
82
+ ticker_after: Annotated[
83
+ Optional[str],
84
+ pydantic.Field(alias="tickerAfter"),
85
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
86
+ ] = None
87
+ r"""Filter tickers > this value (exclusive)"""
88
+
89
+ ticker_to: Annotated[
90
+ Optional[str],
91
+ pydantic.Field(alias="tickerTo"),
92
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
93
+ ] = None
94
+ r"""Filter tickers <= this value (inclusive)"""
95
+
96
+ ticker_before: Annotated[
97
+ Optional[str],
98
+ pydantic.Field(alias="tickerBefore"),
99
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
100
+ ] = None
101
+ r"""Filter tickers < this value (exclusive)"""
102
+
103
+ execution_date: Annotated[
104
+ Optional[date],
105
+ pydantic.Field(alias="executionDate"),
106
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
107
+ ] = None
108
+ r"""Exact execution date in YYYY-MM-DD format"""
109
+
110
+ execution_date_from: Annotated[
111
+ Optional[date],
112
+ pydantic.Field(alias="executionDateFrom"),
113
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
114
+ ] = None
115
+ r"""Filter to splits that executed on or after this date (inclusive). Format: `YYYY-MM-DD`."""
116
+
117
+ execution_date_after: Annotated[
118
+ Optional[date],
119
+ pydantic.Field(alias="executionDateAfter"),
120
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
121
+ ] = None
122
+ r"""Filter to splits that executed strictly after this date (exclusive). Format: `YYYY-MM-DD`."""
123
+
124
+ execution_date_to: Annotated[
125
+ Optional[date],
126
+ pydantic.Field(alias="executionDateTo"),
127
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
128
+ ] = None
129
+ r"""Filter to splits that executed on or before this date (inclusive). Format: `YYYY-MM-DD`."""
130
+
131
+ execution_date_before: Annotated[
132
+ Optional[date],
133
+ pydantic.Field(alias="executionDateBefore"),
134
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
135
+ ] = None
136
+ r"""Filter to splits that executed strictly before this date (exclusive). Format: `YYYY-MM-DD`."""
137
+
138
+ adjustment_type: Annotated[
139
+ Optional[GetStockSplitsAdjustmentType],
140
+ pydantic.Field(alias="adjustmentType"),
141
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
142
+ ] = None
143
+ r"""Exact type: forward_split, reverse_split, stock_dividend"""
144
+
145
+ adjustment_types: Annotated[
146
+ Optional[str],
147
+ pydantic.Field(alias="adjustmentTypes"),
148
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
149
+ ] = None
150
+ r"""Comma-separated list of adjustment types"""
151
+
152
+ limit: Annotated[
153
+ Optional[int],
154
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
155
+ ] = None
156
+ r"""Maximum number of results to return. Range: 1 to 5000. Use smaller values for UI pages, larger for batch exports."""
157
+
158
+ sort: Annotated[
159
+ Optional[str],
160
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
161
+ ] = None
162
+ 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. Examples: `execution_date.desc` or `ticker.asc,execution_date.desc`."""
163
+
164
+ next: Annotated[
165
+ Optional[str],
166
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
167
+ ] = None
168
+ r"""Pagination cursor from previous response"""
169
+
170
+ @field_serializer("adjustment_type")
171
+ def serialize_adjustment_type(self, value):
172
+ if isinstance(value, str):
173
+ try:
174
+ return models.GetStockSplitsAdjustmentType(value)
175
+ except ValueError:
176
+ return value
177
+ return value
178
+
179
+ @model_serializer(mode="wrap")
180
+ def serialize_model(self, handler):
181
+ optional_fields = set(
182
+ [
183
+ "ticker",
184
+ "tickersAnyOf",
185
+ "tickerFrom",
186
+ "tickerAfter",
187
+ "tickerTo",
188
+ "tickerBefore",
189
+ "executionDate",
190
+ "executionDateFrom",
191
+ "executionDateAfter",
192
+ "executionDateTo",
193
+ "executionDateBefore",
194
+ "adjustmentType",
195
+ "adjustmentTypes",
196
+ "limit",
197
+ "sort",
198
+ "next",
199
+ ]
200
+ )
201
+ serialized = handler(self)
202
+ m = {}
203
+
204
+ for n, f in type(self).model_fields.items():
205
+ k = f.alias or n
206
+ val = serialized.get(k, serialized.get(n))
207
+
208
+ if val != UNSET_SENTINEL:
209
+ if val is not None or k not in optional_fields:
210
+ m[k] = val
211
+
212
+ return m
213
+
214
+
215
+ class GetStockSplitsResponseTypedDict(TypedDict):
216
+ http_meta: HTTPMetadataTypedDict
217
+ stock_splits_response: NotRequired[StockSplitsResponseTypedDict]
218
+ r"""Successful response"""
219
+
220
+
221
+ class GetStockSplitsResponse(BaseModel):
222
+ next: Callable[[], Optional[GetStockSplitsResponse]]
223
+
224
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
225
+
226
+ stock_splits_response: Optional[StockSplitsResponse] = None
227
+ r"""Successful response"""
228
+
229
+ @model_serializer(mode="wrap")
230
+ def serialize_model(self, handler):
231
+ optional_fields = set(["StockSplitsResponse"])
232
+ serialized = handler(self)
233
+ m = {}
234
+
235
+ for n, f in type(self).model_fields.items():
236
+ k = f.alias or n
237
+ val = serialized.get(k, serialized.get(n))
238
+
239
+ if val != UNSET_SENTINEL:
240
+ if val is not None or k not in optional_fields:
241
+ m[k] = val
242
+
243
+ return m
@@ -0,0 +1,177 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 7f4b9336fedd
3
+
4
+ from __future__ import annotations
5
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
6
+ from .stocktradesresponse import StockTradesResponse, StockTradesResponseTypedDict
7
+ from enum import Enum
8
+ from finance_dev import models, utils
9
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
10
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
11
+ import pydantic
12
+ from pydantic import field_serializer, model_serializer
13
+ from typing import Callable, Optional
14
+ from typing_extensions import Annotated, NotRequired, TypedDict
15
+
16
+
17
+ class GetStockTradesOrder(str, Enum, metaclass=utils.OpenEnumMeta):
18
+ r"""Sort order for returned records. Use asc for oldest first or desc for newest first when supported."""
19
+
20
+ ASC = "asc"
21
+ DESC = "desc"
22
+
23
+
24
+ class GetStockTradesRequestTypedDict(TypedDict):
25
+ ticker: str
26
+ r"""Stock ticker symbol, such as AAPL. Use the exact ticker for the company you want to research."""
27
+ timestamp: NotRequired[str]
28
+ r"""Query by timestamp (YYYY-MM-DD or nanoseconds)"""
29
+ timestamp_from: NotRequired[str]
30
+ r"""Timestamp start filter. Returns records at or after this timestamp."""
31
+ timestamp_after: NotRequired[str]
32
+ r"""Timestamp lower-bound filter. Returns records after this timestamp, excluding the timestamp itself."""
33
+ timestamp_to: NotRequired[str]
34
+ r"""Timestamp end filter. Returns records at or before this timestamp."""
35
+ timestamp_before: NotRequired[str]
36
+ r"""Timestamp upper-bound filter. Returns records before this timestamp, excluding the timestamp itself."""
37
+ order: NotRequired[GetStockTradesOrder]
38
+ r"""Sort order for returned records. Use asc for oldest first or desc for newest first when supported."""
39
+ limit: NotRequired[int]
40
+ r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits."""
41
+ sort: NotRequired[str]
42
+ r"""Sort field used for ordering. Massive documents this separately from `order`, so enter the provider-supported field name in the text box, for example `timestamp`."""
43
+ next: NotRequired[str]
44
+ r"""Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page."""
45
+
46
+
47
+ class GetStockTradesRequest(BaseModel):
48
+ ticker: Annotated[
49
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
50
+ ]
51
+ r"""Stock ticker symbol, such as AAPL. Use the exact ticker for the company you want to research."""
52
+
53
+ timestamp: Annotated[
54
+ Optional[str],
55
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
56
+ ] = None
57
+ r"""Query by timestamp (YYYY-MM-DD or nanoseconds)"""
58
+
59
+ timestamp_from: Annotated[
60
+ Optional[str],
61
+ pydantic.Field(alias="timestampFrom"),
62
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
63
+ ] = None
64
+ r"""Timestamp start filter. Returns records at or after this timestamp."""
65
+
66
+ timestamp_after: Annotated[
67
+ Optional[str],
68
+ pydantic.Field(alias="timestampAfter"),
69
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
70
+ ] = None
71
+ r"""Timestamp lower-bound filter. Returns records after this timestamp, excluding the timestamp itself."""
72
+
73
+ timestamp_to: Annotated[
74
+ Optional[str],
75
+ pydantic.Field(alias="timestampTo"),
76
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
77
+ ] = None
78
+ r"""Timestamp end filter. Returns records at or before this timestamp."""
79
+
80
+ timestamp_before: Annotated[
81
+ Optional[str],
82
+ pydantic.Field(alias="timestampBefore"),
83
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
84
+ ] = None
85
+ r"""Timestamp upper-bound filter. Returns records before this timestamp, excluding the timestamp itself."""
86
+
87
+ order: Annotated[
88
+ Optional[GetStockTradesOrder],
89
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
90
+ ] = GetStockTradesOrder.DESC
91
+ r"""Sort order for returned records. Use asc for oldest first or desc for newest first when supported."""
92
+
93
+ limit: Annotated[
94
+ Optional[int],
95
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
96
+ ] = None
97
+ r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits."""
98
+
99
+ sort: Annotated[
100
+ Optional[str],
101
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
102
+ ] = None
103
+ r"""Sort field used for ordering. Massive documents this separately from `order`, so enter the provider-supported field name in the text box, for example `timestamp`."""
104
+
105
+ next: Annotated[
106
+ Optional[str],
107
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
108
+ ] = None
109
+ r"""Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page."""
110
+
111
+ @field_serializer("order")
112
+ def serialize_order(self, value):
113
+ if isinstance(value, str):
114
+ try:
115
+ return models.GetStockTradesOrder(value)
116
+ except ValueError:
117
+ return value
118
+ return value
119
+
120
+ @model_serializer(mode="wrap")
121
+ def serialize_model(self, handler):
122
+ optional_fields = set(
123
+ [
124
+ "timestamp",
125
+ "timestampFrom",
126
+ "timestampAfter",
127
+ "timestampTo",
128
+ "timestampBefore",
129
+ "order",
130
+ "limit",
131
+ "sort",
132
+ "next",
133
+ ]
134
+ )
135
+ serialized = handler(self)
136
+ m = {}
137
+
138
+ for n, f in type(self).model_fields.items():
139
+ k = f.alias or n
140
+ val = serialized.get(k, serialized.get(n))
141
+
142
+ if val != UNSET_SENTINEL:
143
+ if val is not None or k not in optional_fields:
144
+ m[k] = val
145
+
146
+ return m
147
+
148
+
149
+ class GetStockTradesResponseTypedDict(TypedDict):
150
+ http_meta: HTTPMetadataTypedDict
151
+ stock_trades_response: NotRequired[StockTradesResponseTypedDict]
152
+ r"""Successful response"""
153
+
154
+
155
+ class GetStockTradesResponse(BaseModel):
156
+ next: Callable[[], Optional[GetStockTradesResponse]]
157
+
158
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
159
+
160
+ stock_trades_response: Optional[StockTradesResponse] = None
161
+ r"""Successful response"""
162
+
163
+ @model_serializer(mode="wrap")
164
+ def serialize_model(self, handler):
165
+ optional_fields = set(["StockTradesResponse"])
166
+ serialized = handler(self)
167
+ m = {}
168
+
169
+ for n, f in type(self).model_fields.items():
170
+ k = f.alias or n
171
+ val = serialized.get(k, serialized.get(n))
172
+
173
+ if val != UNSET_SENTINEL:
174
+ if val is not None or k not in optional_fields:
175
+ m[k] = val
176
+
177
+ return m
@@ -0,0 +1,53 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 605c8d9e80dd
3
+
4
+ from __future__ import annotations
5
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
6
+ from .supplychainresponse import SupplyChainResponse, SupplyChainResponseTypedDict
7
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
8
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
9
+ import pydantic
10
+ from pydantic import model_serializer
11
+ from typing import Optional
12
+ from typing_extensions import Annotated, NotRequired, TypedDict
13
+
14
+
15
+ class GetSupplyChainRequestTypedDict(TypedDict):
16
+ symbol: str
17
+ r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`."""
18
+
19
+
20
+ class GetSupplyChainRequest(BaseModel):
21
+ symbol: Annotated[
22
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
23
+ ]
24
+ r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`."""
25
+
26
+
27
+ class GetSupplyChainResponseTypedDict(TypedDict):
28
+ http_meta: HTTPMetadataTypedDict
29
+ supply_chain_response: NotRequired[SupplyChainResponseTypedDict]
30
+ r"""Supply chain data."""
31
+
32
+
33
+ class GetSupplyChainResponse(BaseModel):
34
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
35
+
36
+ supply_chain_response: Optional[SupplyChainResponse] = None
37
+ r"""Supply chain data."""
38
+
39
+ @model_serializer(mode="wrap")
40
+ def serialize_model(self, handler):
41
+ optional_fields = set(["SupplyChainResponse"])
42
+ serialized = handler(self)
43
+ m = {}
44
+
45
+ for n, f in type(self).model_fields.items():
46
+ k = f.alias or n
47
+ val = serialized.get(k, serialized.get(n))
48
+
49
+ if val != UNSET_SENTINEL:
50
+ if val is not None or k not in optional_fields:
51
+ m[k] = val
52
+
53
+ return m
@@ -0,0 +1,90 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: a985700ee8b1
3
+
4
+ from __future__ import annotations
5
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
6
+ from .supportresistancelevelsresponse import (
7
+ SupportResistanceLevelsResponse,
8
+ SupportResistanceLevelsResponseTypedDict,
9
+ )
10
+ from enum import Enum
11
+ from finance_dev import models, utils
12
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
13
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
14
+ import pydantic
15
+ from pydantic import field_serializer, model_serializer
16
+ from typing import Optional
17
+ from typing_extensions import Annotated, NotRequired, TypedDict
18
+
19
+
20
+ class GetSupportResistanceLevelsResolution(str, Enum, metaclass=utils.OpenEnumMeta):
21
+ r"""How long each bar covers. Supported values are minutes (`1`, `5`, `15`, `30`, `60`) or daily/weekly/monthly (`D`, `W`, `M`). Other values return 400 Bad Request with error code `VALIDATION_ERROR`."""
22
+
23
+ ONE = "1"
24
+ FIVE = "5"
25
+ FIFTEEN = "15"
26
+ THIRTY = "30"
27
+ SIXTY = "60"
28
+ D = "D"
29
+ W = "W"
30
+ M = "M"
31
+
32
+
33
+ class GetSupportResistanceLevelsRequestTypedDict(TypedDict):
34
+ symbol: str
35
+ r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`, `TSLA`."""
36
+ resolution: GetSupportResistanceLevelsResolution
37
+ r"""How long each bar covers. Supported values are minutes (`1`, `5`, `15`, `30`, `60`) or daily/weekly/monthly (`D`, `W`, `M`). Other values return 400 Bad Request with error code `VALIDATION_ERROR`."""
38
+
39
+
40
+ class GetSupportResistanceLevelsRequest(BaseModel):
41
+ symbol: Annotated[
42
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
43
+ ]
44
+ r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`, `TSLA`."""
45
+
46
+ resolution: Annotated[
47
+ GetSupportResistanceLevelsResolution,
48
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
49
+ ]
50
+ r"""How long each bar covers. Supported values are minutes (`1`, `5`, `15`, `30`, `60`) or daily/weekly/monthly (`D`, `W`, `M`). Other values return 400 Bad Request with error code `VALIDATION_ERROR`."""
51
+
52
+ @field_serializer("resolution")
53
+ def serialize_resolution(self, value):
54
+ if isinstance(value, str):
55
+ try:
56
+ return models.GetSupportResistanceLevelsResolution(value)
57
+ except ValueError:
58
+ return value
59
+ return value
60
+
61
+
62
+ class GetSupportResistanceLevelsResponseTypedDict(TypedDict):
63
+ http_meta: HTTPMetadataTypedDict
64
+ support_resistance_levels_response: NotRequired[
65
+ SupportResistanceLevelsResponseTypedDict
66
+ ]
67
+ r"""Successful response"""
68
+
69
+
70
+ class GetSupportResistanceLevelsResponse(BaseModel):
71
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
72
+
73
+ support_resistance_levels_response: Optional[SupportResistanceLevelsResponse] = None
74
+ r"""Successful response"""
75
+
76
+ @model_serializer(mode="wrap")
77
+ def serialize_model(self, handler):
78
+ optional_fields = set(["SupportResistanceLevelsResponse"])
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