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/history.py ADDED
@@ -0,0 +1,477 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 1a6a4b4ba331
3
+
4
+ from .basesdk import BaseSDK
5
+ from finance_dev import errors, models, utils
6
+ from finance_dev._hooks import HookContext
7
+ from finance_dev.types import OptionalNullable, UNSET
8
+ from finance_dev.utils.unmarshal_json_response import unmarshal_json_response
9
+ from typing import Any, Iterable, List, Mapping, Optional, Union
10
+
11
+
12
+ class History(BaseSDK):
13
+ def get_history(
14
+ self,
15
+ *,
16
+ symbol: str,
17
+ from_: Optional[str] = None,
18
+ to: Optional[str] = None,
19
+ limit: Optional[int] = None,
20
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
21
+ server_url: Optional[str] = None,
22
+ timeout_ms: Optional[int] = None,
23
+ http_headers: Optional[Mapping[str, str]] = None,
24
+ ) -> models.GetHistoryResponse:
25
+ r"""Get historical ticks for a single symbol
26
+
27
+ Returns prediction-market YES/NO price history for a single symbol. Time range is optional; omit both `from` and `to` to use the service default. `from`/`to` accept RFC3339 strings (e.g. `2026-04-01T00:00:00Z`) or Unix seconds/milliseconds.
28
+
29
+ :param symbol:
30
+ :param from_: RFC3339 timestamp or Unix seconds/milliseconds.
31
+ :param to: RFC3339 timestamp or Unix seconds/milliseconds.
32
+ :param limit: 0 or omitted means 10000; values above 10000 are clamped to it.
33
+ :param retries: Override the default retry configuration for this method
34
+ :param server_url: Override the default server URL for this method
35
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
36
+ :param http_headers: Additional headers to set or replace on requests.
37
+ """
38
+ base_url = None
39
+ url_variables = None
40
+ if timeout_ms is None:
41
+ timeout_ms = self.sdk_configuration.timeout_ms
42
+
43
+ if timeout_ms is None:
44
+ timeout_ms = 30000
45
+
46
+ if server_url is not None:
47
+ base_url = server_url
48
+ else:
49
+ base_url = self._get_url(base_url, url_variables)
50
+
51
+ request = models.GetHistoryRequest(
52
+ symbol=symbol,
53
+ from_=from_,
54
+ to=to,
55
+ limit=limit,
56
+ )
57
+
58
+ req = self._build_request(
59
+ method="GET",
60
+ path="/v1/predictions/historical-data",
61
+ base_url=base_url,
62
+ url_variables=url_variables,
63
+ request=request,
64
+ request_body_required=False,
65
+ request_has_path_params=False,
66
+ request_has_query_params=True,
67
+ user_agent_header="user-agent",
68
+ accept_header_value="application/json",
69
+ http_headers=http_headers,
70
+ allow_empty_value=None,
71
+ timeout_ms=timeout_ms,
72
+ )
73
+
74
+ if retries == UNSET:
75
+ if self.sdk_configuration.retry_config is not UNSET:
76
+ retries = self.sdk_configuration.retry_config
77
+ else:
78
+ retries = utils.RetryConfig(
79
+ "backoff", utils.BackoffStrategy(500, 8000, 1.5, 60000), True
80
+ )
81
+
82
+ retry_config = None
83
+ if isinstance(retries, utils.RetryConfig):
84
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
85
+
86
+ http_res = self.do_request(
87
+ hook_ctx=HookContext(
88
+ config=self.sdk_configuration,
89
+ base_url=base_url or "",
90
+ operation_id="getHistory",
91
+ oauth2_scopes=None,
92
+ security_source=None,
93
+ tags=["Prediction Historical Data"],
94
+ extensions=None,
95
+ ),
96
+ request=req,
97
+ is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c),
98
+ retry_config=retry_config,
99
+ )
100
+
101
+ response_data: Any = None
102
+ if utils.match_response(http_res, "200", "application/json"):
103
+ return models.GetHistoryResponse(
104
+ object=unmarshal_json_response(
105
+ Optional[models.GetHistoryResponseBody], http_res
106
+ ),
107
+ http_meta=models.HTTPMetadata(request=req, response=http_res),
108
+ )
109
+ if utils.match_response(http_res, "400", "application/json"):
110
+ response_data = unmarshal_json_response(errors.ErrorEnvelopeData, http_res)
111
+ response_data.http_meta = models.HTTPMetadata(
112
+ request=req, response=http_res
113
+ )
114
+ raise errors.ErrorEnvelope(response_data, http_res)
115
+ if utils.match_response(http_res, "502", "application/json"):
116
+ response_data = unmarshal_json_response(errors.ErrorEnvelopeData, http_res)
117
+ response_data.http_meta = models.HTTPMetadata(
118
+ request=req, response=http_res
119
+ )
120
+ raise errors.ErrorEnvelope(response_data, http_res)
121
+ if utils.match_response(http_res, "4XX", "*"):
122
+ http_res_text = utils.stream_to_text(http_res)
123
+ raise errors.APIError("API error occurred", http_res, http_res_text)
124
+ if utils.match_response(http_res, "5XX", "*"):
125
+ http_res_text = utils.stream_to_text(http_res)
126
+ raise errors.APIError("API error occurred", http_res, http_res_text)
127
+
128
+ raise errors.APIError("Unexpected response received", http_res)
129
+
130
+ async def get_history_async(
131
+ self,
132
+ *,
133
+ symbol: str,
134
+ from_: Optional[str] = None,
135
+ to: Optional[str] = None,
136
+ limit: Optional[int] = None,
137
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
138
+ server_url: Optional[str] = None,
139
+ timeout_ms: Optional[int] = None,
140
+ http_headers: Optional[Mapping[str, str]] = None,
141
+ ) -> models.GetHistoryResponse:
142
+ r"""Get historical ticks for a single symbol
143
+
144
+ Returns prediction-market YES/NO price history for a single symbol. Time range is optional; omit both `from` and `to` to use the service default. `from`/`to` accept RFC3339 strings (e.g. `2026-04-01T00:00:00Z`) or Unix seconds/milliseconds.
145
+
146
+ :param symbol:
147
+ :param from_: RFC3339 timestamp or Unix seconds/milliseconds.
148
+ :param to: RFC3339 timestamp or Unix seconds/milliseconds.
149
+ :param limit: 0 or omitted means 10000; values above 10000 are clamped to it.
150
+ :param retries: Override the default retry configuration for this method
151
+ :param server_url: Override the default server URL for this method
152
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
153
+ :param http_headers: Additional headers to set or replace on requests.
154
+ """
155
+ base_url = None
156
+ url_variables = None
157
+ if timeout_ms is None:
158
+ timeout_ms = self.sdk_configuration.timeout_ms
159
+
160
+ if timeout_ms is None:
161
+ timeout_ms = 30000
162
+
163
+ if server_url is not None:
164
+ base_url = server_url
165
+ else:
166
+ base_url = self._get_url(base_url, url_variables)
167
+
168
+ request = models.GetHistoryRequest(
169
+ symbol=symbol,
170
+ from_=from_,
171
+ to=to,
172
+ limit=limit,
173
+ )
174
+
175
+ req = self._build_request_async(
176
+ method="GET",
177
+ path="/v1/predictions/historical-data",
178
+ base_url=base_url,
179
+ url_variables=url_variables,
180
+ request=request,
181
+ request_body_required=False,
182
+ request_has_path_params=False,
183
+ request_has_query_params=True,
184
+ user_agent_header="user-agent",
185
+ accept_header_value="application/json",
186
+ http_headers=http_headers,
187
+ allow_empty_value=None,
188
+ timeout_ms=timeout_ms,
189
+ )
190
+
191
+ if retries == UNSET:
192
+ if self.sdk_configuration.retry_config is not UNSET:
193
+ retries = self.sdk_configuration.retry_config
194
+ else:
195
+ retries = utils.RetryConfig(
196
+ "backoff", utils.BackoffStrategy(500, 8000, 1.5, 60000), True
197
+ )
198
+
199
+ retry_config = None
200
+ if isinstance(retries, utils.RetryConfig):
201
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
202
+
203
+ http_res = await self.do_request_async(
204
+ hook_ctx=HookContext(
205
+ config=self.sdk_configuration,
206
+ base_url=base_url or "",
207
+ operation_id="getHistory",
208
+ oauth2_scopes=None,
209
+ security_source=None,
210
+ tags=["Prediction Historical Data"],
211
+ extensions=None,
212
+ ),
213
+ request=req,
214
+ is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c),
215
+ retry_config=retry_config,
216
+ )
217
+
218
+ response_data: Any = None
219
+ if utils.match_response(http_res, "200", "application/json"):
220
+ return models.GetHistoryResponse(
221
+ object=unmarshal_json_response(
222
+ Optional[models.GetHistoryResponseBody], http_res
223
+ ),
224
+ http_meta=models.HTTPMetadata(request=req, response=http_res),
225
+ )
226
+ if utils.match_response(http_res, "400", "application/json"):
227
+ response_data = unmarshal_json_response(errors.ErrorEnvelopeData, http_res)
228
+ response_data.http_meta = models.HTTPMetadata(
229
+ request=req, response=http_res
230
+ )
231
+ raise errors.ErrorEnvelope(response_data, http_res)
232
+ if utils.match_response(http_res, "502", "application/json"):
233
+ response_data = unmarshal_json_response(errors.ErrorEnvelopeData, http_res)
234
+ response_data.http_meta = models.HTTPMetadata(
235
+ request=req, response=http_res
236
+ )
237
+ raise errors.ErrorEnvelope(response_data, http_res)
238
+ if utils.match_response(http_res, "4XX", "*"):
239
+ http_res_text = await utils.stream_to_text_async(http_res)
240
+ raise errors.APIError("API error occurred", http_res, http_res_text)
241
+ if utils.match_response(http_res, "5XX", "*"):
242
+ http_res_text = await utils.stream_to_text_async(http_res)
243
+ raise errors.APIError("API error occurred", http_res, http_res_text)
244
+
245
+ raise errors.APIError("Unexpected response received", http_res)
246
+
247
+ def get_history_batch(
248
+ self,
249
+ *,
250
+ queries: Union[
251
+ Iterable[models.PredMdHistoryRequest],
252
+ Iterable[models.PredMdHistoryRequestTypedDict],
253
+ ],
254
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
255
+ server_url: Optional[str] = None,
256
+ timeout_ms: Optional[int] = None,
257
+ http_headers: Optional[Mapping[str, str]] = None,
258
+ ) -> models.GetHistoryBatchResponse:
259
+ r"""Batch historical ticks for up to 5 symbols
260
+
261
+ Returns historical ticks for multiple symbols in one request. Each query may carry its own optional `from`/`to`/`limit`. Maximum 5 queries per call.
262
+
263
+ :param queries:
264
+ :param retries: Override the default retry configuration for this method
265
+ :param server_url: Override the default server URL for this method
266
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
267
+ :param http_headers: Additional headers to set or replace on requests.
268
+ """
269
+ base_url = None
270
+ url_variables = None
271
+ if timeout_ms is None:
272
+ timeout_ms = self.sdk_configuration.timeout_ms
273
+
274
+ if timeout_ms is None:
275
+ timeout_ms = 30000
276
+
277
+ if server_url is not None:
278
+ base_url = server_url
279
+ else:
280
+ base_url = self._get_url(base_url, url_variables)
281
+
282
+ request = models.PredMdBatchHistoryRequest(
283
+ queries=utils.get_pydantic_model(
284
+ queries, List[models.PredMdHistoryRequest]
285
+ ),
286
+ )
287
+
288
+ req = self._build_request(
289
+ method="POST",
290
+ path="/v1/predictions/historical-data/batch",
291
+ base_url=base_url,
292
+ url_variables=url_variables,
293
+ request=request,
294
+ request_body_required=True,
295
+ request_has_path_params=False,
296
+ request_has_query_params=False,
297
+ user_agent_header="user-agent",
298
+ accept_header_value="application/json",
299
+ http_headers=http_headers,
300
+ get_serialized_body=lambda: utils.serialize_request_body(
301
+ request, False, False, "json", models.PredMdBatchHistoryRequest
302
+ ),
303
+ allow_empty_value=None,
304
+ timeout_ms=timeout_ms,
305
+ )
306
+
307
+ if retries == UNSET:
308
+ if self.sdk_configuration.retry_config is not UNSET:
309
+ retries = self.sdk_configuration.retry_config
310
+ else:
311
+ retries = utils.RetryConfig(
312
+ "backoff", utils.BackoffStrategy(500, 8000, 1.5, 60000), True
313
+ )
314
+
315
+ retry_config = None
316
+ if isinstance(retries, utils.RetryConfig):
317
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
318
+
319
+ http_res = self.do_request(
320
+ hook_ctx=HookContext(
321
+ config=self.sdk_configuration,
322
+ base_url=base_url or "",
323
+ operation_id="getHistoryBatch",
324
+ oauth2_scopes=None,
325
+ security_source=None,
326
+ tags=["Prediction Historical Data"],
327
+ extensions=None,
328
+ ),
329
+ request=req,
330
+ is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c),
331
+ retry_config=retry_config,
332
+ )
333
+
334
+ response_data: Any = None
335
+ if utils.match_response(http_res, "200", "application/json"):
336
+ return models.GetHistoryBatchResponse(
337
+ object=unmarshal_json_response(
338
+ Optional[models.GetHistoryBatchResponseBody], http_res
339
+ ),
340
+ http_meta=models.HTTPMetadata(request=req, response=http_res),
341
+ )
342
+ if utils.match_response(http_res, "400", "application/json"):
343
+ response_data = unmarshal_json_response(errors.ErrorEnvelopeData, http_res)
344
+ response_data.http_meta = models.HTTPMetadata(
345
+ request=req, response=http_res
346
+ )
347
+ raise errors.ErrorEnvelope(response_data, http_res)
348
+ if utils.match_response(http_res, "502", "application/json"):
349
+ response_data = unmarshal_json_response(errors.ErrorEnvelopeData, http_res)
350
+ response_data.http_meta = models.HTTPMetadata(
351
+ request=req, response=http_res
352
+ )
353
+ raise errors.ErrorEnvelope(response_data, http_res)
354
+ if utils.match_response(http_res, "4XX", "*"):
355
+ http_res_text = utils.stream_to_text(http_res)
356
+ raise errors.APIError("API error occurred", http_res, http_res_text)
357
+ if utils.match_response(http_res, "5XX", "*"):
358
+ http_res_text = utils.stream_to_text(http_res)
359
+ raise errors.APIError("API error occurred", http_res, http_res_text)
360
+
361
+ raise errors.APIError("Unexpected response received", http_res)
362
+
363
+ async def get_history_batch_async(
364
+ self,
365
+ *,
366
+ queries: Union[
367
+ Iterable[models.PredMdHistoryRequest],
368
+ Iterable[models.PredMdHistoryRequestTypedDict],
369
+ ],
370
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
371
+ server_url: Optional[str] = None,
372
+ timeout_ms: Optional[int] = None,
373
+ http_headers: Optional[Mapping[str, str]] = None,
374
+ ) -> models.GetHistoryBatchResponse:
375
+ r"""Batch historical ticks for up to 5 symbols
376
+
377
+ Returns historical ticks for multiple symbols in one request. Each query may carry its own optional `from`/`to`/`limit`. Maximum 5 queries per call.
378
+
379
+ :param queries:
380
+ :param retries: Override the default retry configuration for this method
381
+ :param server_url: Override the default server URL for this method
382
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
383
+ :param http_headers: Additional headers to set or replace on requests.
384
+ """
385
+ base_url = None
386
+ url_variables = None
387
+ if timeout_ms is None:
388
+ timeout_ms = self.sdk_configuration.timeout_ms
389
+
390
+ if timeout_ms is None:
391
+ timeout_ms = 30000
392
+
393
+ if server_url is not None:
394
+ base_url = server_url
395
+ else:
396
+ base_url = self._get_url(base_url, url_variables)
397
+
398
+ request = models.PredMdBatchHistoryRequest(
399
+ queries=utils.get_pydantic_model(
400
+ queries, List[models.PredMdHistoryRequest]
401
+ ),
402
+ )
403
+
404
+ req = self._build_request_async(
405
+ method="POST",
406
+ path="/v1/predictions/historical-data/batch",
407
+ base_url=base_url,
408
+ url_variables=url_variables,
409
+ request=request,
410
+ request_body_required=True,
411
+ request_has_path_params=False,
412
+ request_has_query_params=False,
413
+ user_agent_header="user-agent",
414
+ accept_header_value="application/json",
415
+ http_headers=http_headers,
416
+ get_serialized_body=lambda: utils.serialize_request_body(
417
+ request, False, False, "json", models.PredMdBatchHistoryRequest
418
+ ),
419
+ allow_empty_value=None,
420
+ timeout_ms=timeout_ms,
421
+ )
422
+
423
+ if retries == UNSET:
424
+ if self.sdk_configuration.retry_config is not UNSET:
425
+ retries = self.sdk_configuration.retry_config
426
+ else:
427
+ retries = utils.RetryConfig(
428
+ "backoff", utils.BackoffStrategy(500, 8000, 1.5, 60000), True
429
+ )
430
+
431
+ retry_config = None
432
+ if isinstance(retries, utils.RetryConfig):
433
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
434
+
435
+ http_res = await self.do_request_async(
436
+ hook_ctx=HookContext(
437
+ config=self.sdk_configuration,
438
+ base_url=base_url or "",
439
+ operation_id="getHistoryBatch",
440
+ oauth2_scopes=None,
441
+ security_source=None,
442
+ tags=["Prediction Historical Data"],
443
+ extensions=None,
444
+ ),
445
+ request=req,
446
+ is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c),
447
+ retry_config=retry_config,
448
+ )
449
+
450
+ response_data: Any = None
451
+ if utils.match_response(http_res, "200", "application/json"):
452
+ return models.GetHistoryBatchResponse(
453
+ object=unmarshal_json_response(
454
+ Optional[models.GetHistoryBatchResponseBody], http_res
455
+ ),
456
+ http_meta=models.HTTPMetadata(request=req, response=http_res),
457
+ )
458
+ if utils.match_response(http_res, "400", "application/json"):
459
+ response_data = unmarshal_json_response(errors.ErrorEnvelopeData, http_res)
460
+ response_data.http_meta = models.HTTPMetadata(
461
+ request=req, response=http_res
462
+ )
463
+ raise errors.ErrorEnvelope(response_data, http_res)
464
+ if utils.match_response(http_res, "502", "application/json"):
465
+ response_data = unmarshal_json_response(errors.ErrorEnvelopeData, http_res)
466
+ response_data.http_meta = models.HTTPMetadata(
467
+ request=req, response=http_res
468
+ )
469
+ raise errors.ErrorEnvelope(response_data, http_res)
470
+ if utils.match_response(http_res, "4XX", "*"):
471
+ http_res_text = await utils.stream_to_text_async(http_res)
472
+ raise errors.APIError("API error occurred", http_res, http_res_text)
473
+ if utils.match_response(http_res, "5XX", "*"):
474
+ http_res_text = await utils.stream_to_text_async(http_res)
475
+ raise errors.APIError("API error occurred", http_res, http_res_text)
476
+
477
+ raise errors.APIError("Unexpected response received", http_res)
@@ -0,0 +1,126 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 562a8882f874
3
+
4
+ # pyright: reportReturnType = false
5
+ import asyncio
6
+ from typing_extensions import Protocol, runtime_checkable
7
+ import httpx
8
+ from typing import Any, Optional, Union
9
+
10
+
11
+ @runtime_checkable
12
+ class HttpClient(Protocol):
13
+ def send(
14
+ self,
15
+ request: httpx.Request,
16
+ *,
17
+ stream: bool = False,
18
+ auth: Union[
19
+ httpx._types.AuthTypes, httpx._client.UseClientDefault, None
20
+ ] = httpx.USE_CLIENT_DEFAULT,
21
+ follow_redirects: Union[
22
+ bool, httpx._client.UseClientDefault
23
+ ] = httpx.USE_CLIENT_DEFAULT,
24
+ ) -> httpx.Response:
25
+ pass
26
+
27
+ def build_request(
28
+ self,
29
+ method: str,
30
+ url: httpx._types.URLTypes,
31
+ *,
32
+ content: Optional[httpx._types.RequestContent] = None,
33
+ data: Optional[httpx._types.RequestData] = None,
34
+ files: Optional[httpx._types.RequestFiles] = None,
35
+ json: Optional[Any] = None,
36
+ params: Optional[httpx._types.QueryParamTypes] = None,
37
+ headers: Optional[httpx._types.HeaderTypes] = None,
38
+ cookies: Optional[httpx._types.CookieTypes] = None,
39
+ timeout: Union[
40
+ httpx._types.TimeoutTypes, httpx._client.UseClientDefault
41
+ ] = httpx.USE_CLIENT_DEFAULT,
42
+ extensions: Optional[httpx._types.RequestExtensions] = None,
43
+ ) -> httpx.Request:
44
+ pass
45
+
46
+ def close(self) -> None:
47
+ pass
48
+
49
+
50
+ @runtime_checkable
51
+ class AsyncHttpClient(Protocol):
52
+ async def send(
53
+ self,
54
+ request: httpx.Request,
55
+ *,
56
+ stream: bool = False,
57
+ auth: Union[
58
+ httpx._types.AuthTypes, httpx._client.UseClientDefault, None
59
+ ] = httpx.USE_CLIENT_DEFAULT,
60
+ follow_redirects: Union[
61
+ bool, httpx._client.UseClientDefault
62
+ ] = httpx.USE_CLIENT_DEFAULT,
63
+ ) -> httpx.Response:
64
+ pass
65
+
66
+ def build_request(
67
+ self,
68
+ method: str,
69
+ url: httpx._types.URLTypes,
70
+ *,
71
+ content: Optional[httpx._types.RequestContent] = None,
72
+ data: Optional[httpx._types.RequestData] = None,
73
+ files: Optional[httpx._types.RequestFiles] = None,
74
+ json: Optional[Any] = None,
75
+ params: Optional[httpx._types.QueryParamTypes] = None,
76
+ headers: Optional[httpx._types.HeaderTypes] = None,
77
+ cookies: Optional[httpx._types.CookieTypes] = None,
78
+ timeout: Union[
79
+ httpx._types.TimeoutTypes, httpx._client.UseClientDefault
80
+ ] = httpx.USE_CLIENT_DEFAULT,
81
+ extensions: Optional[httpx._types.RequestExtensions] = None,
82
+ ) -> httpx.Request:
83
+ pass
84
+
85
+ async def aclose(self) -> None:
86
+ pass
87
+
88
+
89
+ class ClientOwner(Protocol):
90
+ client: Union[HttpClient, None]
91
+ async_client: Union[AsyncHttpClient, None]
92
+
93
+
94
+ def close_clients(
95
+ owner: ClientOwner,
96
+ sync_client: Union[HttpClient, None],
97
+ sync_client_supplied: bool,
98
+ async_client: Union[AsyncHttpClient, None],
99
+ async_client_supplied: bool,
100
+ ) -> None:
101
+ """
102
+ A finalizer function that is meant to be used with weakref.finalize to close
103
+ httpx clients used by an SDK so that underlying resources can be garbage
104
+ collected.
105
+ """
106
+
107
+ # Unset the client/async_client properties so there are no more references
108
+ # to them from the owning SDK instance and they can be reaped.
109
+ owner.client = None
110
+ owner.async_client = None
111
+ if sync_client is not None and not sync_client_supplied:
112
+ try:
113
+ sync_client.close()
114
+ except Exception:
115
+ pass
116
+
117
+ if async_client is not None and not async_client_supplied:
118
+ try:
119
+ loop = asyncio.get_running_loop()
120
+ asyncio.run_coroutine_threadsafe(async_client.aclose(), loop)
121
+ except RuntimeError:
122
+ try:
123
+ asyncio.run(async_client.aclose())
124
+ except RuntimeError:
125
+ # best effort
126
+ pass