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
finance_dev/economy.py ADDED
@@ -0,0 +1,1153 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 5d81d29afc45
3
+
4
+ from .basesdk import BaseSDK
5
+ from datetime import date
6
+ from finance_dev import errors, models, utils
7
+ from finance_dev._hooks import HookContext
8
+ from finance_dev.types import OptionalNullable, UNSET
9
+ from finance_dev.utils.unmarshal_json_response import unmarshal_json_response
10
+ from jsonpath import JSONPath
11
+ from typing import Any, Dict, List, Mapping, Optional, Union
12
+
13
+
14
+ class Economy(BaseSDK):
15
+ def get_inflation(
16
+ self,
17
+ *,
18
+ date_: Optional[date] = None,
19
+ dates: Optional[str] = None,
20
+ date_from: Optional[date] = None,
21
+ date_to: Optional[date] = None,
22
+ date_after: Optional[date] = None,
23
+ date_before: Optional[date] = None,
24
+ limit: Optional[int] = None,
25
+ sort: Optional[str] = None,
26
+ next: Optional[str] = None,
27
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
28
+ server_url: Optional[str] = None,
29
+ url_override: Optional[str] = None,
30
+ timeout_ms: Optional[int] = None,
31
+ http_headers: Optional[Mapping[str, str]] = None,
32
+ ) -> Optional[models.GetInflationResponse]:
33
+ r"""Get Latest Inflation Data
34
+
35
+ Retrieve historical Consumer Price Index (CPI) and Personal Consumption Expenditures (PCE) inflation metrics including core inflation rates and spending data with flexible date filtering.
36
+
37
+ If set, this operation will use `client_id` from the global security.
38
+
39
+ :param date_: Exact date in YYYY-MM-DD format. Use this when you want one specific calendar day.
40
+ :param dates: Comma-separated list of dates in YYYY-MM-DD format. Use this when you want several specific dates in one request.
41
+ :param date_from: Start-date filter. Returns records on or after this date.
42
+ :param date_to: End-date filter. Returns records on or before this date.
43
+ :param date_after: After-date filter. Returns records after this date, excluding the date itself.
44
+ :param date_before: Before-date filter. Returns records before this date, excluding the date itself.
45
+ :param limit: Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits.
46
+ :param sort: A comma-separated list of sort columns. For each column, append `.asc` or `.desc` to specify direction. Defaults to `date.asc` when not specified.
47
+ :param next: Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page.
48
+ :param retries: Override the default retry configuration for this method
49
+ :param server_url: Override the default server URL for this method
50
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
51
+ :param http_headers: Additional headers to set or replace on requests.
52
+ """
53
+ base_url = None
54
+ url_variables = None
55
+ if timeout_ms is None:
56
+ timeout_ms = self.sdk_configuration.timeout_ms
57
+
58
+ if timeout_ms is None:
59
+ timeout_ms = 30000
60
+
61
+ if server_url is not None:
62
+ base_url = server_url
63
+ else:
64
+ base_url = self._get_url(base_url, url_variables)
65
+
66
+ request = models.GetInflationRequest(
67
+ date_=date_,
68
+ dates=dates,
69
+ date_from=date_from,
70
+ date_to=date_to,
71
+ date_after=date_after,
72
+ date_before=date_before,
73
+ limit=limit,
74
+ sort=sort,
75
+ next=next,
76
+ )
77
+
78
+ req = self._build_request(
79
+ method="GET",
80
+ path="/v1/economy/inflation",
81
+ base_url=base_url,
82
+ url_variables=url_variables,
83
+ url_override=url_override,
84
+ request=request,
85
+ request_body_required=False,
86
+ request_has_path_params=False,
87
+ request_has_query_params=True,
88
+ user_agent_header="user-agent",
89
+ accept_header_value="application/json",
90
+ http_headers=http_headers,
91
+ security=self.sdk_configuration.security,
92
+ allow_empty_value=None,
93
+ allowed_fields=["client_id"],
94
+ timeout_ms=timeout_ms,
95
+ )
96
+
97
+ if retries == UNSET:
98
+ if self.sdk_configuration.retry_config is not UNSET:
99
+ retries = self.sdk_configuration.retry_config
100
+ else:
101
+ retries = utils.RetryConfig(
102
+ "backoff", utils.BackoffStrategy(500, 8000, 1.5, 60000), True
103
+ )
104
+
105
+ retry_config = None
106
+ if isinstance(retries, utils.RetryConfig):
107
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
108
+
109
+ http_res = self.do_request(
110
+ hook_ctx=HookContext(
111
+ config=self.sdk_configuration,
112
+ base_url=base_url or "",
113
+ operation_id="getInflation",
114
+ oauth2_scopes=["market:supplemental"],
115
+ security_source=self.sdk_configuration.security,
116
+ tags=["Economy"],
117
+ extensions=None,
118
+ ),
119
+ request=req,
120
+ is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c),
121
+ retry_config=retry_config,
122
+ )
123
+
124
+ def next_func() -> Optional[models.GetInflationResponse]:
125
+ body = utils.unmarshal_json(http_res.text, Union[Dict[Any, Any], List[Any]])
126
+ next_url_match = JSONPath("$.nextUrl").parse(body)
127
+ if len(next_url_match) == 0:
128
+ return None
129
+
130
+ next_url = next_url_match[0]
131
+ if not next_url:
132
+ return None
133
+
134
+ if next_url[0] == "/":
135
+ url = self._get_url(base_url, url_variables)
136
+ next_url = url + next_url
137
+
138
+ return self.get_inflation(
139
+ date_=date_,
140
+ dates=dates,
141
+ date_from=date_from,
142
+ date_to=date_to,
143
+ date_after=date_after,
144
+ date_before=date_before,
145
+ limit=limit,
146
+ sort=sort,
147
+ next=next,
148
+ retries=retries,
149
+ server_url=server_url,
150
+ timeout_ms=timeout_ms,
151
+ http_headers=http_headers,
152
+ url_override=next_url,
153
+ )
154
+
155
+ response_data: Any = None
156
+ if utils.match_response(http_res, "200", "application/json"):
157
+ return models.GetInflationResponse(
158
+ inflation_response=unmarshal_json_response(
159
+ Optional[models.InflationResponse], http_res
160
+ ),
161
+ http_meta=models.HTTPMetadata(request=req, response=http_res),
162
+ next=next_func,
163
+ )
164
+ if utils.match_response(http_res, "400", "application/json"):
165
+ response_data = unmarshal_json_response(errors.BadRequestUnion, http_res)
166
+ response_data.http_meta = models.HTTPMetadata(
167
+ request=req, response=http_res
168
+ )
169
+ raise errors.BadRequest(response_data, http_res)
170
+ if utils.match_response(http_res, "401", "application/json"):
171
+ response_data = unmarshal_json_response(errors.UnauthorizedUnion, http_res)
172
+ response_data.http_meta = models.HTTPMetadata(
173
+ request=req, response=http_res
174
+ )
175
+ raise errors.Unauthorized(response_data, http_res)
176
+ if utils.match_response(http_res, "403", "application/json"):
177
+ response_data = unmarshal_json_response(errors.ForbiddenUnion, http_res)
178
+ response_data.http_meta = models.HTTPMetadata(
179
+ request=req, response=http_res
180
+ )
181
+ raise errors.Forbidden(response_data, http_res)
182
+ if utils.match_response(http_res, "404", "application/json"):
183
+ response_data = unmarshal_json_response(errors.NotFoundUnion, http_res)
184
+ response_data.http_meta = models.HTTPMetadata(
185
+ request=req, response=http_res
186
+ )
187
+ raise errors.NotFound(response_data, http_res)
188
+ if utils.match_response(http_res, "500", "application/json"):
189
+ response_data = unmarshal_json_response(
190
+ errors.InternalServerErrorUnion, http_res
191
+ )
192
+ response_data.http_meta = models.HTTPMetadata(
193
+ request=req, response=http_res
194
+ )
195
+ raise errors.InternalServerError(response_data, http_res)
196
+ if utils.match_response(http_res, "4XX", "*"):
197
+ http_res_text = utils.stream_to_text(http_res)
198
+ raise errors.APIError("API error occurred", http_res, http_res_text)
199
+ if utils.match_response(http_res, "5XX", "*"):
200
+ http_res_text = utils.stream_to_text(http_res)
201
+ raise errors.APIError("API error occurred", http_res, http_res_text)
202
+
203
+ raise errors.APIError("Unexpected response received", http_res)
204
+
205
+ async def get_inflation_async(
206
+ self,
207
+ *,
208
+ date_: Optional[date] = None,
209
+ dates: Optional[str] = None,
210
+ date_from: Optional[date] = None,
211
+ date_to: Optional[date] = None,
212
+ date_after: Optional[date] = None,
213
+ date_before: Optional[date] = None,
214
+ limit: Optional[int] = None,
215
+ sort: Optional[str] = None,
216
+ next: Optional[str] = None,
217
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
218
+ server_url: Optional[str] = None,
219
+ url_override: Optional[str] = None,
220
+ timeout_ms: Optional[int] = None,
221
+ http_headers: Optional[Mapping[str, str]] = None,
222
+ ) -> Optional[models.GetInflationResponse]:
223
+ r"""Get Latest Inflation Data
224
+
225
+ Retrieve historical Consumer Price Index (CPI) and Personal Consumption Expenditures (PCE) inflation metrics including core inflation rates and spending data with flexible date filtering.
226
+
227
+ If set, this operation will use `client_id` from the global security.
228
+
229
+ :param date_: Exact date in YYYY-MM-DD format. Use this when you want one specific calendar day.
230
+ :param dates: Comma-separated list of dates in YYYY-MM-DD format. Use this when you want several specific dates in one request.
231
+ :param date_from: Start-date filter. Returns records on or after this date.
232
+ :param date_to: End-date filter. Returns records on or before this date.
233
+ :param date_after: After-date filter. Returns records after this date, excluding the date itself.
234
+ :param date_before: Before-date filter. Returns records before this date, excluding the date itself.
235
+ :param limit: Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits.
236
+ :param sort: A comma-separated list of sort columns. For each column, append `.asc` or `.desc` to specify direction. Defaults to `date.asc` when not specified.
237
+ :param next: Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page.
238
+ :param retries: Override the default retry configuration for this method
239
+ :param server_url: Override the default server URL for this method
240
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
241
+ :param http_headers: Additional headers to set or replace on requests.
242
+ """
243
+ base_url = None
244
+ url_variables = None
245
+ if timeout_ms is None:
246
+ timeout_ms = self.sdk_configuration.timeout_ms
247
+
248
+ if timeout_ms is None:
249
+ timeout_ms = 30000
250
+
251
+ if server_url is not None:
252
+ base_url = server_url
253
+ else:
254
+ base_url = self._get_url(base_url, url_variables)
255
+
256
+ request = models.GetInflationRequest(
257
+ date_=date_,
258
+ dates=dates,
259
+ date_from=date_from,
260
+ date_to=date_to,
261
+ date_after=date_after,
262
+ date_before=date_before,
263
+ limit=limit,
264
+ sort=sort,
265
+ next=next,
266
+ )
267
+
268
+ req = self._build_request_async(
269
+ method="GET",
270
+ path="/v1/economy/inflation",
271
+ base_url=base_url,
272
+ url_variables=url_variables,
273
+ url_override=url_override,
274
+ request=request,
275
+ request_body_required=False,
276
+ request_has_path_params=False,
277
+ request_has_query_params=True,
278
+ user_agent_header="user-agent",
279
+ accept_header_value="application/json",
280
+ http_headers=http_headers,
281
+ security=self.sdk_configuration.security,
282
+ allow_empty_value=None,
283
+ allowed_fields=["client_id"],
284
+ timeout_ms=timeout_ms,
285
+ )
286
+
287
+ if retries == UNSET:
288
+ if self.sdk_configuration.retry_config is not UNSET:
289
+ retries = self.sdk_configuration.retry_config
290
+ else:
291
+ retries = utils.RetryConfig(
292
+ "backoff", utils.BackoffStrategy(500, 8000, 1.5, 60000), True
293
+ )
294
+
295
+ retry_config = None
296
+ if isinstance(retries, utils.RetryConfig):
297
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
298
+
299
+ http_res = await self.do_request_async(
300
+ hook_ctx=HookContext(
301
+ config=self.sdk_configuration,
302
+ base_url=base_url or "",
303
+ operation_id="getInflation",
304
+ oauth2_scopes=["market:supplemental"],
305
+ security_source=self.sdk_configuration.security,
306
+ tags=["Economy"],
307
+ extensions=None,
308
+ ),
309
+ request=req,
310
+ is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c),
311
+ retry_config=retry_config,
312
+ )
313
+
314
+ def next_func() -> Optional[models.GetInflationResponse]:
315
+ body = utils.unmarshal_json(http_res.text, Union[Dict[Any, Any], List[Any]])
316
+ next_url_match = JSONPath("$.nextUrl").parse(body)
317
+ if len(next_url_match) == 0:
318
+ return None
319
+
320
+ next_url = next_url_match[0]
321
+ if not next_url:
322
+ return None
323
+
324
+ if next_url[0] == "/":
325
+ url = self._get_url(base_url, url_variables)
326
+ next_url = url + next_url
327
+
328
+ return self.get_inflation(
329
+ date_=date_,
330
+ dates=dates,
331
+ date_from=date_from,
332
+ date_to=date_to,
333
+ date_after=date_after,
334
+ date_before=date_before,
335
+ limit=limit,
336
+ sort=sort,
337
+ next=next,
338
+ retries=retries,
339
+ server_url=server_url,
340
+ timeout_ms=timeout_ms,
341
+ http_headers=http_headers,
342
+ url_override=next_url,
343
+ )
344
+
345
+ response_data: Any = None
346
+ if utils.match_response(http_res, "200", "application/json"):
347
+ return models.GetInflationResponse(
348
+ inflation_response=unmarshal_json_response(
349
+ Optional[models.InflationResponse], http_res
350
+ ),
351
+ http_meta=models.HTTPMetadata(request=req, response=http_res),
352
+ next=next_func,
353
+ )
354
+ if utils.match_response(http_res, "400", "application/json"):
355
+ response_data = unmarshal_json_response(errors.BadRequestUnion, http_res)
356
+ response_data.http_meta = models.HTTPMetadata(
357
+ request=req, response=http_res
358
+ )
359
+ raise errors.BadRequest(response_data, http_res)
360
+ if utils.match_response(http_res, "401", "application/json"):
361
+ response_data = unmarshal_json_response(errors.UnauthorizedUnion, http_res)
362
+ response_data.http_meta = models.HTTPMetadata(
363
+ request=req, response=http_res
364
+ )
365
+ raise errors.Unauthorized(response_data, http_res)
366
+ if utils.match_response(http_res, "403", "application/json"):
367
+ response_data = unmarshal_json_response(errors.ForbiddenUnion, http_res)
368
+ response_data.http_meta = models.HTTPMetadata(
369
+ request=req, response=http_res
370
+ )
371
+ raise errors.Forbidden(response_data, http_res)
372
+ if utils.match_response(http_res, "404", "application/json"):
373
+ response_data = unmarshal_json_response(errors.NotFoundUnion, http_res)
374
+ response_data.http_meta = models.HTTPMetadata(
375
+ request=req, response=http_res
376
+ )
377
+ raise errors.NotFound(response_data, http_res)
378
+ if utils.match_response(http_res, "500", "application/json"):
379
+ response_data = unmarshal_json_response(
380
+ errors.InternalServerErrorUnion, http_res
381
+ )
382
+ response_data.http_meta = models.HTTPMetadata(
383
+ request=req, response=http_res
384
+ )
385
+ raise errors.InternalServerError(response_data, http_res)
386
+ if utils.match_response(http_res, "4XX", "*"):
387
+ http_res_text = await utils.stream_to_text_async(http_res)
388
+ raise errors.APIError("API error occurred", http_res, http_res_text)
389
+ if utils.match_response(http_res, "5XX", "*"):
390
+ http_res_text = await utils.stream_to_text_async(http_res)
391
+ raise errors.APIError("API error occurred", http_res, http_res_text)
392
+
393
+ raise errors.APIError("Unexpected response received", http_res)
394
+
395
+ def get_inflation_expectations(
396
+ self,
397
+ *,
398
+ date_: Optional[date] = None,
399
+ dates: Optional[str] = None,
400
+ date_from: Optional[date] = None,
401
+ date_to: Optional[date] = None,
402
+ date_after: Optional[date] = None,
403
+ date_before: Optional[date] = None,
404
+ limit: Optional[int] = None,
405
+ sort: Optional[str] = None,
406
+ next: Optional[str] = None,
407
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
408
+ server_url: Optional[str] = None,
409
+ url_override: Optional[str] = None,
410
+ timeout_ms: Optional[int] = None,
411
+ http_headers: Optional[Mapping[str, str]] = None,
412
+ ) -> Optional[models.GetInflationExpectationsResponse]:
413
+ r"""Get Latest Inflation Expectations
414
+
415
+ Retrieve historical inflation expectations data from financial markets and surveys to gauge future inflation trends with flexible date filtering.
416
+
417
+ If set, this operation will use `client_id` from the global security.
418
+
419
+ :param date_: Exact date in YYYY-MM-DD format. Use this when you want one specific calendar day.
420
+ :param dates: Comma-separated list of dates in YYYY-MM-DD format. Use this when you want several specific dates in one request.
421
+ :param date_from: Start-date filter. Returns records on or after this date.
422
+ :param date_to: End-date filter. Returns records on or before this date.
423
+ :param date_after: After-date filter. Returns records after this date, excluding the date itself.
424
+ :param date_before: Before-date filter. Returns records before this date, excluding the date itself.
425
+ :param limit: Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits.
426
+ :param sort: A comma-separated list of sort columns. For each column, append `.asc` or `.desc` to specify direction. Defaults to `date.asc` when not specified.
427
+ :param next: Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page.
428
+ :param retries: Override the default retry configuration for this method
429
+ :param server_url: Override the default server URL for this method
430
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
431
+ :param http_headers: Additional headers to set or replace on requests.
432
+ """
433
+ base_url = None
434
+ url_variables = None
435
+ if timeout_ms is None:
436
+ timeout_ms = self.sdk_configuration.timeout_ms
437
+
438
+ if timeout_ms is None:
439
+ timeout_ms = 30000
440
+
441
+ if server_url is not None:
442
+ base_url = server_url
443
+ else:
444
+ base_url = self._get_url(base_url, url_variables)
445
+
446
+ request = models.GetInflationExpectationsRequest(
447
+ date_=date_,
448
+ dates=dates,
449
+ date_from=date_from,
450
+ date_to=date_to,
451
+ date_after=date_after,
452
+ date_before=date_before,
453
+ limit=limit,
454
+ sort=sort,
455
+ next=next,
456
+ )
457
+
458
+ req = self._build_request(
459
+ method="GET",
460
+ path="/v1/economy/inflation-expectations",
461
+ base_url=base_url,
462
+ url_variables=url_variables,
463
+ url_override=url_override,
464
+ request=request,
465
+ request_body_required=False,
466
+ request_has_path_params=False,
467
+ request_has_query_params=True,
468
+ user_agent_header="user-agent",
469
+ accept_header_value="application/json",
470
+ http_headers=http_headers,
471
+ security=self.sdk_configuration.security,
472
+ allow_empty_value=None,
473
+ allowed_fields=["client_id"],
474
+ timeout_ms=timeout_ms,
475
+ )
476
+
477
+ if retries == UNSET:
478
+ if self.sdk_configuration.retry_config is not UNSET:
479
+ retries = self.sdk_configuration.retry_config
480
+ else:
481
+ retries = utils.RetryConfig(
482
+ "backoff", utils.BackoffStrategy(500, 8000, 1.5, 60000), True
483
+ )
484
+
485
+ retry_config = None
486
+ if isinstance(retries, utils.RetryConfig):
487
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
488
+
489
+ http_res = self.do_request(
490
+ hook_ctx=HookContext(
491
+ config=self.sdk_configuration,
492
+ base_url=base_url or "",
493
+ operation_id="getInflationExpectations",
494
+ oauth2_scopes=["market:supplemental"],
495
+ security_source=self.sdk_configuration.security,
496
+ tags=["Economy"],
497
+ extensions=None,
498
+ ),
499
+ request=req,
500
+ is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c),
501
+ retry_config=retry_config,
502
+ )
503
+
504
+ def next_func() -> Optional[models.GetInflationExpectationsResponse]:
505
+ body = utils.unmarshal_json(http_res.text, Union[Dict[Any, Any], List[Any]])
506
+ next_url_match = JSONPath("$.nextUrl").parse(body)
507
+ if len(next_url_match) == 0:
508
+ return None
509
+
510
+ next_url = next_url_match[0]
511
+ if not next_url:
512
+ return None
513
+
514
+ if next_url[0] == "/":
515
+ url = self._get_url(base_url, url_variables)
516
+ next_url = url + next_url
517
+
518
+ return self.get_inflation_expectations(
519
+ date_=date_,
520
+ dates=dates,
521
+ date_from=date_from,
522
+ date_to=date_to,
523
+ date_after=date_after,
524
+ date_before=date_before,
525
+ limit=limit,
526
+ sort=sort,
527
+ next=next,
528
+ retries=retries,
529
+ server_url=server_url,
530
+ timeout_ms=timeout_ms,
531
+ http_headers=http_headers,
532
+ url_override=next_url,
533
+ )
534
+
535
+ response_data: Any = None
536
+ if utils.match_response(http_res, "200", "application/json"):
537
+ return models.GetInflationExpectationsResponse(
538
+ inflation_expectations_response=unmarshal_json_response(
539
+ Optional[models.InflationExpectationsResponse], http_res
540
+ ),
541
+ http_meta=models.HTTPMetadata(request=req, response=http_res),
542
+ next=next_func,
543
+ )
544
+ if utils.match_response(http_res, "400", "application/json"):
545
+ response_data = unmarshal_json_response(errors.BadRequestUnion, http_res)
546
+ response_data.http_meta = models.HTTPMetadata(
547
+ request=req, response=http_res
548
+ )
549
+ raise errors.BadRequest(response_data, http_res)
550
+ if utils.match_response(http_res, "401", "application/json"):
551
+ response_data = unmarshal_json_response(errors.UnauthorizedUnion, http_res)
552
+ response_data.http_meta = models.HTTPMetadata(
553
+ request=req, response=http_res
554
+ )
555
+ raise errors.Unauthorized(response_data, http_res)
556
+ if utils.match_response(http_res, "403", "application/json"):
557
+ response_data = unmarshal_json_response(errors.ForbiddenUnion, http_res)
558
+ response_data.http_meta = models.HTTPMetadata(
559
+ request=req, response=http_res
560
+ )
561
+ raise errors.Forbidden(response_data, http_res)
562
+ if utils.match_response(http_res, "404", "application/json"):
563
+ response_data = unmarshal_json_response(errors.NotFoundUnion, http_res)
564
+ response_data.http_meta = models.HTTPMetadata(
565
+ request=req, response=http_res
566
+ )
567
+ raise errors.NotFound(response_data, http_res)
568
+ if utils.match_response(http_res, "500", "application/json"):
569
+ response_data = unmarshal_json_response(
570
+ errors.InternalServerErrorUnion, http_res
571
+ )
572
+ response_data.http_meta = models.HTTPMetadata(
573
+ request=req, response=http_res
574
+ )
575
+ raise errors.InternalServerError(response_data, http_res)
576
+ if utils.match_response(http_res, "4XX", "*"):
577
+ http_res_text = utils.stream_to_text(http_res)
578
+ raise errors.APIError("API error occurred", http_res, http_res_text)
579
+ if utils.match_response(http_res, "5XX", "*"):
580
+ http_res_text = utils.stream_to_text(http_res)
581
+ raise errors.APIError("API error occurred", http_res, http_res_text)
582
+
583
+ raise errors.APIError("Unexpected response received", http_res)
584
+
585
+ async def get_inflation_expectations_async(
586
+ self,
587
+ *,
588
+ date_: Optional[date] = None,
589
+ dates: Optional[str] = None,
590
+ date_from: Optional[date] = None,
591
+ date_to: Optional[date] = None,
592
+ date_after: Optional[date] = None,
593
+ date_before: Optional[date] = None,
594
+ limit: Optional[int] = None,
595
+ sort: Optional[str] = None,
596
+ next: Optional[str] = None,
597
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
598
+ server_url: Optional[str] = None,
599
+ url_override: Optional[str] = None,
600
+ timeout_ms: Optional[int] = None,
601
+ http_headers: Optional[Mapping[str, str]] = None,
602
+ ) -> Optional[models.GetInflationExpectationsResponse]:
603
+ r"""Get Latest Inflation Expectations
604
+
605
+ Retrieve historical inflation expectations data from financial markets and surveys to gauge future inflation trends with flexible date filtering.
606
+
607
+ If set, this operation will use `client_id` from the global security.
608
+
609
+ :param date_: Exact date in YYYY-MM-DD format. Use this when you want one specific calendar day.
610
+ :param dates: Comma-separated list of dates in YYYY-MM-DD format. Use this when you want several specific dates in one request.
611
+ :param date_from: Start-date filter. Returns records on or after this date.
612
+ :param date_to: End-date filter. Returns records on or before this date.
613
+ :param date_after: After-date filter. Returns records after this date, excluding the date itself.
614
+ :param date_before: Before-date filter. Returns records before this date, excluding the date itself.
615
+ :param limit: Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits.
616
+ :param sort: A comma-separated list of sort columns. For each column, append `.asc` or `.desc` to specify direction. Defaults to `date.asc` when not specified.
617
+ :param next: Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page.
618
+ :param retries: Override the default retry configuration for this method
619
+ :param server_url: Override the default server URL for this method
620
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
621
+ :param http_headers: Additional headers to set or replace on requests.
622
+ """
623
+ base_url = None
624
+ url_variables = None
625
+ if timeout_ms is None:
626
+ timeout_ms = self.sdk_configuration.timeout_ms
627
+
628
+ if timeout_ms is None:
629
+ timeout_ms = 30000
630
+
631
+ if server_url is not None:
632
+ base_url = server_url
633
+ else:
634
+ base_url = self._get_url(base_url, url_variables)
635
+
636
+ request = models.GetInflationExpectationsRequest(
637
+ date_=date_,
638
+ dates=dates,
639
+ date_from=date_from,
640
+ date_to=date_to,
641
+ date_after=date_after,
642
+ date_before=date_before,
643
+ limit=limit,
644
+ sort=sort,
645
+ next=next,
646
+ )
647
+
648
+ req = self._build_request_async(
649
+ method="GET",
650
+ path="/v1/economy/inflation-expectations",
651
+ base_url=base_url,
652
+ url_variables=url_variables,
653
+ url_override=url_override,
654
+ request=request,
655
+ request_body_required=False,
656
+ request_has_path_params=False,
657
+ request_has_query_params=True,
658
+ user_agent_header="user-agent",
659
+ accept_header_value="application/json",
660
+ http_headers=http_headers,
661
+ security=self.sdk_configuration.security,
662
+ allow_empty_value=None,
663
+ allowed_fields=["client_id"],
664
+ timeout_ms=timeout_ms,
665
+ )
666
+
667
+ if retries == UNSET:
668
+ if self.sdk_configuration.retry_config is not UNSET:
669
+ retries = self.sdk_configuration.retry_config
670
+ else:
671
+ retries = utils.RetryConfig(
672
+ "backoff", utils.BackoffStrategy(500, 8000, 1.5, 60000), True
673
+ )
674
+
675
+ retry_config = None
676
+ if isinstance(retries, utils.RetryConfig):
677
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
678
+
679
+ http_res = await self.do_request_async(
680
+ hook_ctx=HookContext(
681
+ config=self.sdk_configuration,
682
+ base_url=base_url or "",
683
+ operation_id="getInflationExpectations",
684
+ oauth2_scopes=["market:supplemental"],
685
+ security_source=self.sdk_configuration.security,
686
+ tags=["Economy"],
687
+ extensions=None,
688
+ ),
689
+ request=req,
690
+ is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c),
691
+ retry_config=retry_config,
692
+ )
693
+
694
+ def next_func() -> Optional[models.GetInflationExpectationsResponse]:
695
+ body = utils.unmarshal_json(http_res.text, Union[Dict[Any, Any], List[Any]])
696
+ next_url_match = JSONPath("$.nextUrl").parse(body)
697
+ if len(next_url_match) == 0:
698
+ return None
699
+
700
+ next_url = next_url_match[0]
701
+ if not next_url:
702
+ return None
703
+
704
+ if next_url[0] == "/":
705
+ url = self._get_url(base_url, url_variables)
706
+ next_url = url + next_url
707
+
708
+ return self.get_inflation_expectations(
709
+ date_=date_,
710
+ dates=dates,
711
+ date_from=date_from,
712
+ date_to=date_to,
713
+ date_after=date_after,
714
+ date_before=date_before,
715
+ limit=limit,
716
+ sort=sort,
717
+ next=next,
718
+ retries=retries,
719
+ server_url=server_url,
720
+ timeout_ms=timeout_ms,
721
+ http_headers=http_headers,
722
+ url_override=next_url,
723
+ )
724
+
725
+ response_data: Any = None
726
+ if utils.match_response(http_res, "200", "application/json"):
727
+ return models.GetInflationExpectationsResponse(
728
+ inflation_expectations_response=unmarshal_json_response(
729
+ Optional[models.InflationExpectationsResponse], http_res
730
+ ),
731
+ http_meta=models.HTTPMetadata(request=req, response=http_res),
732
+ next=next_func,
733
+ )
734
+ if utils.match_response(http_res, "400", "application/json"):
735
+ response_data = unmarshal_json_response(errors.BadRequestUnion, http_res)
736
+ response_data.http_meta = models.HTTPMetadata(
737
+ request=req, response=http_res
738
+ )
739
+ raise errors.BadRequest(response_data, http_res)
740
+ if utils.match_response(http_res, "401", "application/json"):
741
+ response_data = unmarshal_json_response(errors.UnauthorizedUnion, http_res)
742
+ response_data.http_meta = models.HTTPMetadata(
743
+ request=req, response=http_res
744
+ )
745
+ raise errors.Unauthorized(response_data, http_res)
746
+ if utils.match_response(http_res, "403", "application/json"):
747
+ response_data = unmarshal_json_response(errors.ForbiddenUnion, http_res)
748
+ response_data.http_meta = models.HTTPMetadata(
749
+ request=req, response=http_res
750
+ )
751
+ raise errors.Forbidden(response_data, http_res)
752
+ if utils.match_response(http_res, "404", "application/json"):
753
+ response_data = unmarshal_json_response(errors.NotFoundUnion, http_res)
754
+ response_data.http_meta = models.HTTPMetadata(
755
+ request=req, response=http_res
756
+ )
757
+ raise errors.NotFound(response_data, http_res)
758
+ if utils.match_response(http_res, "500", "application/json"):
759
+ response_data = unmarshal_json_response(
760
+ errors.InternalServerErrorUnion, http_res
761
+ )
762
+ response_data.http_meta = models.HTTPMetadata(
763
+ request=req, response=http_res
764
+ )
765
+ raise errors.InternalServerError(response_data, http_res)
766
+ if utils.match_response(http_res, "4XX", "*"):
767
+ http_res_text = await utils.stream_to_text_async(http_res)
768
+ raise errors.APIError("API error occurred", http_res, http_res_text)
769
+ if utils.match_response(http_res, "5XX", "*"):
770
+ http_res_text = await utils.stream_to_text_async(http_res)
771
+ raise errors.APIError("API error occurred", http_res, http_res_text)
772
+
773
+ raise errors.APIError("Unexpected response received", http_res)
774
+
775
+ def get_treasury_yields(
776
+ self,
777
+ *,
778
+ date_: Optional[date] = None,
779
+ dates: Optional[str] = None,
780
+ date_from: Optional[date] = None,
781
+ date_to: Optional[date] = None,
782
+ date_after: Optional[date] = None,
783
+ date_before: Optional[date] = None,
784
+ limit: Optional[int] = None,
785
+ sort: Optional[str] = None,
786
+ next: Optional[str] = None,
787
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
788
+ server_url: Optional[str] = None,
789
+ url_override: Optional[str] = None,
790
+ timeout_ms: Optional[int] = None,
791
+ http_headers: Optional[Mapping[str, str]] = None,
792
+ ) -> Optional[models.GetTreasuryYieldsResponse]:
793
+ r"""Get Latest Treasury Yields
794
+
795
+ Retrieve historical U.S. Treasury yields across different maturities including short-term bills and long-term bonds with flexible date filtering.
796
+
797
+ If set, this operation will use `client_id` from the global security.
798
+
799
+ :param date_: Exact date in YYYY-MM-DD format. Use this when you want one specific calendar day.
800
+ :param dates: Comma-separated list of dates in YYYY-MM-DD format. Use this when you want several specific dates in one request.
801
+ :param date_from: Start-date filter. Returns records on or after this date.
802
+ :param date_to: End-date filter. Returns records on or before this date.
803
+ :param date_after: After-date filter. Returns records after this date, excluding the date itself.
804
+ :param date_before: Before-date filter. Returns records before this date, excluding the date itself.
805
+ :param limit: Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits.
806
+ :param sort: A comma-separated list of sort columns. For each column, append `.asc` or `.desc` to specify direction. Massive documents this family with date-based sorting; use provider-supported column names in the text box.
807
+ :param next: Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page.
808
+ :param retries: Override the default retry configuration for this method
809
+ :param server_url: Override the default server URL for this method
810
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
811
+ :param http_headers: Additional headers to set or replace on requests.
812
+ """
813
+ base_url = None
814
+ url_variables = None
815
+ if timeout_ms is None:
816
+ timeout_ms = self.sdk_configuration.timeout_ms
817
+
818
+ if timeout_ms is None:
819
+ timeout_ms = 30000
820
+
821
+ if server_url is not None:
822
+ base_url = server_url
823
+ else:
824
+ base_url = self._get_url(base_url, url_variables)
825
+
826
+ request = models.GetTreasuryYieldsRequest(
827
+ date_=date_,
828
+ dates=dates,
829
+ date_from=date_from,
830
+ date_to=date_to,
831
+ date_after=date_after,
832
+ date_before=date_before,
833
+ limit=limit,
834
+ sort=sort,
835
+ next=next,
836
+ )
837
+
838
+ req = self._build_request(
839
+ method="GET",
840
+ path="/v1/economy/treasury-yields",
841
+ base_url=base_url,
842
+ url_variables=url_variables,
843
+ url_override=url_override,
844
+ request=request,
845
+ request_body_required=False,
846
+ request_has_path_params=False,
847
+ request_has_query_params=True,
848
+ user_agent_header="user-agent",
849
+ accept_header_value="application/json",
850
+ http_headers=http_headers,
851
+ security=self.sdk_configuration.security,
852
+ allow_empty_value=None,
853
+ allowed_fields=["client_id"],
854
+ timeout_ms=timeout_ms,
855
+ )
856
+
857
+ if retries == UNSET:
858
+ if self.sdk_configuration.retry_config is not UNSET:
859
+ retries = self.sdk_configuration.retry_config
860
+ else:
861
+ retries = utils.RetryConfig(
862
+ "backoff", utils.BackoffStrategy(500, 8000, 1.5, 60000), True
863
+ )
864
+
865
+ retry_config = None
866
+ if isinstance(retries, utils.RetryConfig):
867
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
868
+
869
+ http_res = self.do_request(
870
+ hook_ctx=HookContext(
871
+ config=self.sdk_configuration,
872
+ base_url=base_url or "",
873
+ operation_id="getTreasuryYields",
874
+ oauth2_scopes=["market:supplemental"],
875
+ security_source=self.sdk_configuration.security,
876
+ tags=["Economy"],
877
+ extensions=None,
878
+ ),
879
+ request=req,
880
+ is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c),
881
+ retry_config=retry_config,
882
+ )
883
+
884
+ def next_func() -> Optional[models.GetTreasuryYieldsResponse]:
885
+ body = utils.unmarshal_json(http_res.text, Union[Dict[Any, Any], List[Any]])
886
+ next_url_match = JSONPath("$.nextUrl").parse(body)
887
+ if len(next_url_match) == 0:
888
+ return None
889
+
890
+ next_url = next_url_match[0]
891
+ if not next_url:
892
+ return None
893
+
894
+ if next_url[0] == "/":
895
+ url = self._get_url(base_url, url_variables)
896
+ next_url = url + next_url
897
+
898
+ return self.get_treasury_yields(
899
+ date_=date_,
900
+ dates=dates,
901
+ date_from=date_from,
902
+ date_to=date_to,
903
+ date_after=date_after,
904
+ date_before=date_before,
905
+ limit=limit,
906
+ sort=sort,
907
+ next=next,
908
+ retries=retries,
909
+ server_url=server_url,
910
+ timeout_ms=timeout_ms,
911
+ http_headers=http_headers,
912
+ url_override=next_url,
913
+ )
914
+
915
+ response_data: Any = None
916
+ if utils.match_response(http_res, "200", "application/json"):
917
+ return models.GetTreasuryYieldsResponse(
918
+ treasury_yields_response=unmarshal_json_response(
919
+ Optional[models.TreasuryYieldsResponse], http_res
920
+ ),
921
+ http_meta=models.HTTPMetadata(request=req, response=http_res),
922
+ next=next_func,
923
+ )
924
+ if utils.match_response(http_res, "400", "application/json"):
925
+ response_data = unmarshal_json_response(errors.BadRequestUnion, http_res)
926
+ response_data.http_meta = models.HTTPMetadata(
927
+ request=req, response=http_res
928
+ )
929
+ raise errors.BadRequest(response_data, http_res)
930
+ if utils.match_response(http_res, "401", "application/json"):
931
+ response_data = unmarshal_json_response(errors.UnauthorizedUnion, http_res)
932
+ response_data.http_meta = models.HTTPMetadata(
933
+ request=req, response=http_res
934
+ )
935
+ raise errors.Unauthorized(response_data, http_res)
936
+ if utils.match_response(http_res, "403", "application/json"):
937
+ response_data = unmarshal_json_response(errors.ForbiddenUnion, http_res)
938
+ response_data.http_meta = models.HTTPMetadata(
939
+ request=req, response=http_res
940
+ )
941
+ raise errors.Forbidden(response_data, http_res)
942
+ if utils.match_response(http_res, "404", "application/json"):
943
+ response_data = unmarshal_json_response(errors.NotFoundUnion, http_res)
944
+ response_data.http_meta = models.HTTPMetadata(
945
+ request=req, response=http_res
946
+ )
947
+ raise errors.NotFound(response_data, http_res)
948
+ if utils.match_response(http_res, "500", "application/json"):
949
+ response_data = unmarshal_json_response(
950
+ errors.InternalServerErrorUnion, http_res
951
+ )
952
+ response_data.http_meta = models.HTTPMetadata(
953
+ request=req, response=http_res
954
+ )
955
+ raise errors.InternalServerError(response_data, http_res)
956
+ if utils.match_response(http_res, "4XX", "*"):
957
+ http_res_text = utils.stream_to_text(http_res)
958
+ raise errors.APIError("API error occurred", http_res, http_res_text)
959
+ if utils.match_response(http_res, "5XX", "*"):
960
+ http_res_text = utils.stream_to_text(http_res)
961
+ raise errors.APIError("API error occurred", http_res, http_res_text)
962
+
963
+ raise errors.APIError("Unexpected response received", http_res)
964
+
965
+ async def get_treasury_yields_async(
966
+ self,
967
+ *,
968
+ date_: Optional[date] = None,
969
+ dates: Optional[str] = None,
970
+ date_from: Optional[date] = None,
971
+ date_to: Optional[date] = None,
972
+ date_after: Optional[date] = None,
973
+ date_before: Optional[date] = None,
974
+ limit: Optional[int] = None,
975
+ sort: Optional[str] = None,
976
+ next: Optional[str] = None,
977
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
978
+ server_url: Optional[str] = None,
979
+ url_override: Optional[str] = None,
980
+ timeout_ms: Optional[int] = None,
981
+ http_headers: Optional[Mapping[str, str]] = None,
982
+ ) -> Optional[models.GetTreasuryYieldsResponse]:
983
+ r"""Get Latest Treasury Yields
984
+
985
+ Retrieve historical U.S. Treasury yields across different maturities including short-term bills and long-term bonds with flexible date filtering.
986
+
987
+ If set, this operation will use `client_id` from the global security.
988
+
989
+ :param date_: Exact date in YYYY-MM-DD format. Use this when you want one specific calendar day.
990
+ :param dates: Comma-separated list of dates in YYYY-MM-DD format. Use this when you want several specific dates in one request.
991
+ :param date_from: Start-date filter. Returns records on or after this date.
992
+ :param date_to: End-date filter. Returns records on or before this date.
993
+ :param date_after: After-date filter. Returns records after this date, excluding the date itself.
994
+ :param date_before: Before-date filter. Returns records before this date, excluding the date itself.
995
+ :param limit: Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits.
996
+ :param sort: A comma-separated list of sort columns. For each column, append `.asc` or `.desc` to specify direction. Massive documents this family with date-based sorting; use provider-supported column names in the text box.
997
+ :param next: Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page.
998
+ :param retries: Override the default retry configuration for this method
999
+ :param server_url: Override the default server URL for this method
1000
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
1001
+ :param http_headers: Additional headers to set or replace on requests.
1002
+ """
1003
+ base_url = None
1004
+ url_variables = None
1005
+ if timeout_ms is None:
1006
+ timeout_ms = self.sdk_configuration.timeout_ms
1007
+
1008
+ if timeout_ms is None:
1009
+ timeout_ms = 30000
1010
+
1011
+ if server_url is not None:
1012
+ base_url = server_url
1013
+ else:
1014
+ base_url = self._get_url(base_url, url_variables)
1015
+
1016
+ request = models.GetTreasuryYieldsRequest(
1017
+ date_=date_,
1018
+ dates=dates,
1019
+ date_from=date_from,
1020
+ date_to=date_to,
1021
+ date_after=date_after,
1022
+ date_before=date_before,
1023
+ limit=limit,
1024
+ sort=sort,
1025
+ next=next,
1026
+ )
1027
+
1028
+ req = self._build_request_async(
1029
+ method="GET",
1030
+ path="/v1/economy/treasury-yields",
1031
+ base_url=base_url,
1032
+ url_variables=url_variables,
1033
+ url_override=url_override,
1034
+ request=request,
1035
+ request_body_required=False,
1036
+ request_has_path_params=False,
1037
+ request_has_query_params=True,
1038
+ user_agent_header="user-agent",
1039
+ accept_header_value="application/json",
1040
+ http_headers=http_headers,
1041
+ security=self.sdk_configuration.security,
1042
+ allow_empty_value=None,
1043
+ allowed_fields=["client_id"],
1044
+ timeout_ms=timeout_ms,
1045
+ )
1046
+
1047
+ if retries == UNSET:
1048
+ if self.sdk_configuration.retry_config is not UNSET:
1049
+ retries = self.sdk_configuration.retry_config
1050
+ else:
1051
+ retries = utils.RetryConfig(
1052
+ "backoff", utils.BackoffStrategy(500, 8000, 1.5, 60000), True
1053
+ )
1054
+
1055
+ retry_config = None
1056
+ if isinstance(retries, utils.RetryConfig):
1057
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
1058
+
1059
+ http_res = await self.do_request_async(
1060
+ hook_ctx=HookContext(
1061
+ config=self.sdk_configuration,
1062
+ base_url=base_url or "",
1063
+ operation_id="getTreasuryYields",
1064
+ oauth2_scopes=["market:supplemental"],
1065
+ security_source=self.sdk_configuration.security,
1066
+ tags=["Economy"],
1067
+ extensions=None,
1068
+ ),
1069
+ request=req,
1070
+ is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c),
1071
+ retry_config=retry_config,
1072
+ )
1073
+
1074
+ def next_func() -> Optional[models.GetTreasuryYieldsResponse]:
1075
+ body = utils.unmarshal_json(http_res.text, Union[Dict[Any, Any], List[Any]])
1076
+ next_url_match = JSONPath("$.nextUrl").parse(body)
1077
+ if len(next_url_match) == 0:
1078
+ return None
1079
+
1080
+ next_url = next_url_match[0]
1081
+ if not next_url:
1082
+ return None
1083
+
1084
+ if next_url[0] == "/":
1085
+ url = self._get_url(base_url, url_variables)
1086
+ next_url = url + next_url
1087
+
1088
+ return self.get_treasury_yields(
1089
+ date_=date_,
1090
+ dates=dates,
1091
+ date_from=date_from,
1092
+ date_to=date_to,
1093
+ date_after=date_after,
1094
+ date_before=date_before,
1095
+ limit=limit,
1096
+ sort=sort,
1097
+ next=next,
1098
+ retries=retries,
1099
+ server_url=server_url,
1100
+ timeout_ms=timeout_ms,
1101
+ http_headers=http_headers,
1102
+ url_override=next_url,
1103
+ )
1104
+
1105
+ response_data: Any = None
1106
+ if utils.match_response(http_res, "200", "application/json"):
1107
+ return models.GetTreasuryYieldsResponse(
1108
+ treasury_yields_response=unmarshal_json_response(
1109
+ Optional[models.TreasuryYieldsResponse], http_res
1110
+ ),
1111
+ http_meta=models.HTTPMetadata(request=req, response=http_res),
1112
+ next=next_func,
1113
+ )
1114
+ if utils.match_response(http_res, "400", "application/json"):
1115
+ response_data = unmarshal_json_response(errors.BadRequestUnion, http_res)
1116
+ response_data.http_meta = models.HTTPMetadata(
1117
+ request=req, response=http_res
1118
+ )
1119
+ raise errors.BadRequest(response_data, http_res)
1120
+ if utils.match_response(http_res, "401", "application/json"):
1121
+ response_data = unmarshal_json_response(errors.UnauthorizedUnion, http_res)
1122
+ response_data.http_meta = models.HTTPMetadata(
1123
+ request=req, response=http_res
1124
+ )
1125
+ raise errors.Unauthorized(response_data, http_res)
1126
+ if utils.match_response(http_res, "403", "application/json"):
1127
+ response_data = unmarshal_json_response(errors.ForbiddenUnion, http_res)
1128
+ response_data.http_meta = models.HTTPMetadata(
1129
+ request=req, response=http_res
1130
+ )
1131
+ raise errors.Forbidden(response_data, http_res)
1132
+ if utils.match_response(http_res, "404", "application/json"):
1133
+ response_data = unmarshal_json_response(errors.NotFoundUnion, http_res)
1134
+ response_data.http_meta = models.HTTPMetadata(
1135
+ request=req, response=http_res
1136
+ )
1137
+ raise errors.NotFound(response_data, http_res)
1138
+ if utils.match_response(http_res, "500", "application/json"):
1139
+ response_data = unmarshal_json_response(
1140
+ errors.InternalServerErrorUnion, http_res
1141
+ )
1142
+ response_data.http_meta = models.HTTPMetadata(
1143
+ request=req, response=http_res
1144
+ )
1145
+ raise errors.InternalServerError(response_data, http_res)
1146
+ if utils.match_response(http_res, "4XX", "*"):
1147
+ http_res_text = await utils.stream_to_text_async(http_res)
1148
+ raise errors.APIError("API error occurred", http_res, http_res_text)
1149
+ if utils.match_response(http_res, "5XX", "*"):
1150
+ http_res_text = await utils.stream_to_text_async(http_res)
1151
+ raise errors.APIError("API error occurred", http_res, http_res_text)
1152
+
1153
+ raise errors.APIError("Unexpected response received", http_res)