finance_dev 0.9.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (486) hide show
  1. finance_dev/__init__.py +18 -0
  2. finance_dev/_hooks/__init__.py +7 -0
  3. finance_dev/_hooks/clientcredentials.py +319 -0
  4. finance_dev/_hooks/oauth2scopes.py +50 -0
  5. finance_dev/_hooks/registration.py +13 -0
  6. finance_dev/_hooks/sdkhooks.py +82 -0
  7. finance_dev/_hooks/types.py +125 -0
  8. finance_dev/_version.py +16 -0
  9. finance_dev/accounts.py +797 -0
  10. finance_dev/alternativedata.py +4830 -0
  11. finance_dev/analytics.py +3757 -0
  12. finance_dev/basesdk.py +393 -0
  13. finance_dev/calendar.py +1523 -0
  14. finance_dev/chart.py +1881 -0
  15. finance_dev/company.py +1105 -0
  16. finance_dev/corporateactions.py +1795 -0
  17. finance_dev/economy.py +1153 -0
  18. finance_dev/errors/__init__.py +94 -0
  19. finance_dev/errors/apierror.py +41 -0
  20. finance_dev/errors/authenticationerrorenvelope.py +43 -0
  21. finance_dev/errors/badrequest.py +34 -0
  22. finance_dev/errors/errorenvelope.py +42 -0
  23. finance_dev/errors/errorresponse.py +45 -0
  24. finance_dev/errors/financedevapierror.py +31 -0
  25. finance_dev/errors/forbidden.py +34 -0
  26. finance_dev/errors/internalservererror.py +35 -0
  27. finance_dev/errors/no_response_error.py +18 -0
  28. finance_dev/errors/notfound.py +34 -0
  29. finance_dev/errors/orderhistorybadrequest.py +35 -0
  30. finance_dev/errors/predorderserrorenvelope.py +42 -0
  31. finance_dev/errors/responsevalidationerror.py +28 -0
  32. finance_dev/errors/unauthorized.py +34 -0
  33. finance_dev/estimates.py +1906 -0
  34. finance_dev/etf.py +1108 -0
  35. finance_dev/filings.py +586 -0
  36. finance_dev/financials.py +4079 -0
  37. finance_dev/history.py +477 -0
  38. finance_dev/httpclient.py +126 -0
  39. finance_dev/indices.py +2308 -0
  40. finance_dev/logos.py +692 -0
  41. finance_dev/market.py +1825 -0
  42. finance_dev/markets.py +952 -0
  43. finance_dev/models/__init__.py +4568 -0
  44. finance_dev/models/accountbalancev2.py +340 -0
  45. finance_dev/models/accountitem.py +78 -0
  46. finance_dev/models/accountposition.py +147 -0
  47. finance_dev/models/aggregatetechnicalindicatorsresponse.py +192 -0
  48. finance_dev/models/analystinsightitem.py +161 -0
  49. finance_dev/models/analystinsightsresponse.py +39 -0
  50. finance_dev/models/apperror.py +123 -0
  51. finance_dev/models/authenticationerrordetail.py +58 -0
  52. finance_dev/models/bankbranchesresponse.py +96 -0
  53. finance_dev/models/basicfinancials.py +243 -0
  54. finance_dev/models/bullbearanalysisresponse.py +150 -0
  55. finance_dev/models/cancelorderop.py +40 -0
  56. finance_dev/models/cancelordrequest_union.py +287 -0
  57. finance_dev/models/cancelordresponse.py +115 -0
  58. finance_dev/models/cashflowstatement.py +290 -0
  59. finance_dev/models/cashflowstatementsresponse.py +61 -0
  60. finance_dev/models/chartbars.py +111 -0
  61. finance_dev/models/chartconfig.py +81 -0
  62. finance_dev/models/chartresolution.py +46 -0
  63. finance_dev/models/companyesgresponse.py +408 -0
  64. finance_dev/models/companyexecutive.py +70 -0
  65. finance_dev/models/companyexecutiveresponse.py +39 -0
  66. finance_dev/models/companypeersresponse.py +38 -0
  67. finance_dev/models/companypresentationresponse.py +96 -0
  68. finance_dev/models/companyprofile.py +255 -0
  69. finance_dev/models/conferencecallsresponse.py +169 -0
  70. finance_dev/models/congressionaltradingresponse.py +138 -0
  71. finance_dev/models/covid19uscasesresponse.py +79 -0
  72. finance_dev/models/createconfigwatchlistop.py +40 -0
  73. finance_dev/models/createwatchlistrequest.py +43 -0
  74. finance_dev/models/dailymarketsummaryresponse.py +73 -0
  75. finance_dev/models/deleteconfigwatchlistbyidop.py +53 -0
  76. finance_dev/models/dividenditem.py +125 -0
  77. finance_dev/models/dividendsresponse.py +61 -0
  78. finance_dev/models/earningrelease.py +291 -0
  79. finance_dev/models/earningscallliveresponse.py +103 -0
  80. finance_dev/models/earningsqualityscoreresponse.py +140 -0
  81. finance_dev/models/earningssurprisesresponse.py +125 -0
  82. finance_dev/models/ebitdaestimatesresponse.py +176 -0
  83. finance_dev/models/ebitestimatesresponse.py +176 -0
  84. finance_dev/models/economicscalendarevent.py +160 -0
  85. finance_dev/models/economicsindicator.py +87 -0
  86. finance_dev/models/epsestimatesresponse.py +176 -0
  87. finance_dev/models/equitydetailsdto.py +569 -0
  88. finance_dev/models/errorcode.py +48 -0
  89. finance_dev/models/etblistresponse.py +43 -0
  90. finance_dev/models/etbsearchrequest.py +21 -0
  91. finance_dev/models/etbsearchresponse.py +43 -0
  92. finance_dev/models/etfcountryallocationresponse.py +113 -0
  93. finance_dev/models/etfholdingsresponse.py +163 -0
  94. finance_dev/models/etfprofileresponse.py +234 -0
  95. finance_dev/models/etfsectorallocationresponse.py +113 -0
  96. finance_dev/models/exchangecode.py +90 -0
  97. finance_dev/models/fdaadvisorycommitteecalendarresponse.py +88 -0
  98. finance_dev/models/filingsimilarityrecord.py +115 -0
  99. finance_dev/models/filingssimilarityindexdatawrapper.py +52 -0
  100. finance_dev/models/filingssimilarityindexresponse.py +42 -0
  101. finance_dev/models/financialratiosresponse.py +252 -0
  102. finance_dev/models/financialsreporteddatawrapper.py +49 -0
  103. finance_dev/models/financialsreportedresponse.py +42 -0
  104. finance_dev/models/financialsrevenuebreakdowndatawrapper.py +49 -0
  105. finance_dev/models/financialsrevenuebreakdownresponse.py +42 -0
  106. finance_dev/models/financialsstatementsdatawrapper.py +44 -0
  107. finance_dev/models/financialsstatementsresponse.py +42 -0
  108. finance_dev/models/financialstatement.py +171 -0
  109. finance_dev/models/financialstatementtype.py +14 -0
  110. finance_dev/models/getaccountbalanceop.py +53 -0
  111. finance_dev/models/getaccountpositionsop.py +53 -0
  112. finance_dev/models/getaccountsresponse.py +22 -0
  113. finance_dev/models/getaggregatetechnicalindicatorsop.py +94 -0
  114. finance_dev/models/getanalystinsightsop.py +164 -0
  115. finance_dev/models/getbankbranchesop.py +53 -0
  116. finance_dev/models/getbaseeventop.py +87 -0
  117. finance_dev/models/getbullbearanalysisop.py +91 -0
  118. finance_dev/models/getcashflowstatementsop.py +564 -0
  119. finance_dev/models/getchartconfigop.py +40 -0
  120. finance_dev/models/getcharthistoryop.py +122 -0
  121. finance_dev/models/getcharttimeop.py +39 -0
  122. finance_dev/models/getcompanyesgop.py +53 -0
  123. finance_dev/models/getcompanyexecutivesop.py +56 -0
  124. finance_dev/models/getcompanymetricsop.py +68 -0
  125. finance_dev/models/getcompanypeersop.py +53 -0
  126. finance_dev/models/getcompanypresentationop.py +56 -0
  127. finance_dev/models/getcompanyprofileop.py +86 -0
  128. finance_dev/models/getconferencecallsop.py +111 -0
  129. finance_dev/models/getconfigwatchlistbyidop.py +53 -0
  130. finance_dev/models/getconfigwatchlistsop.py +40 -0
  131. finance_dev/models/getcongressionaltradingop.py +73 -0
  132. finance_dev/models/getcovid19uscasesop.py +43 -0
  133. finance_dev/models/getdailymarketsummaryop.py +92 -0
  134. finance_dev/models/getdividendsop.py +294 -0
  135. finance_dev/models/getearningscalendarop.py +87 -0
  136. finance_dev/models/getearningscallliveop.py +91 -0
  137. finance_dev/models/getearningsqualityscoreop.py +81 -0
  138. finance_dev/models/getearningssurprisesop.py +80 -0
  139. finance_dev/models/getebitdaestimatesop.py +91 -0
  140. finance_dev/models/getebitestimatesop.py +88 -0
  141. finance_dev/models/geteconomicscalendarop.py +92 -0
  142. finance_dev/models/geteconomicscalendarresponse.py +56 -0
  143. finance_dev/models/getepsestimatesop.py +88 -0
  144. finance_dev/models/getequitydetailsop.py +56 -0
  145. finance_dev/models/getequitydetailsresponse.py +45 -0
  146. finance_dev/models/getetblistop.py +40 -0
  147. finance_dev/models/getetfcountryallocationop.py +80 -0
  148. finance_dev/models/getetfholdingsop.py +96 -0
  149. finance_dev/models/getetfprofileop.py +77 -0
  150. finance_dev/models/getetfsectorallocationop.py +80 -0
  151. finance_dev/models/geteventcontractsop.py +87 -0
  152. finance_dev/models/getfdaadvisorycommitteecalendarop.py +47 -0
  153. finance_dev/models/getfilingssimilarityindexop.py +102 -0
  154. finance_dev/models/getfinancialratiosop.py +612 -0
  155. finance_dev/models/getfinancialstatementsop.py +117 -0
  156. finance_dev/models/getfundownershipop.py +77 -0
  157. finance_dev/models/gethistoricaldataop.py +61 -0
  158. finance_dev/models/gethistoricalesgop.py +53 -0
  159. finance_dev/models/gethistorybatchop.py +74 -0
  160. finance_dev/models/gethistoryop.py +123 -0
  161. finance_dev/models/getincomestatementsop.py +564 -0
  162. finance_dev/models/getindexbarop.py +140 -0
  163. finance_dev/models/getindexbarsop.py +149 -0
  164. finance_dev/models/getindexchartbarsop.py +178 -0
  165. finance_dev/models/getindexrealtimevaluesop.py +94 -0
  166. finance_dev/models/getinflationexpectationsop.py +157 -0
  167. finance_dev/models/getinflationop.py +154 -0
  168. finance_dev/models/getinsidertransactionsop.py +90 -0
  169. finance_dev/models/getinstitutionalownershipop.py +99 -0
  170. finance_dev/models/getinstitutionalportfolioop.py +75 -0
  171. finance_dev/models/getinvestmentthemeop.py +68 -0
  172. finance_dev/models/getipocalendarop.py +63 -0
  173. finance_dev/models/getlobbyingop.py +70 -0
  174. finance_dev/models/getmarketbreadthop.py +40 -0
  175. finance_dev/models/getmarketholidaysop.py +65 -0
  176. finance_dev/models/getmarketstatusop.py +65 -0
  177. finance_dev/models/getmergersandacquisitionsop.py +113 -0
  178. finance_dev/models/getnetinflowop.py +40 -0
  179. finance_dev/models/getnewsbyidop.py +73 -0
  180. finance_dev/models/getnewsop.py +98 -0
  181. finance_dev/models/getnewssentimentop.py +53 -0
  182. finance_dev/models/getoptionchainsnapshotop.py +244 -0
  183. finance_dev/models/getoptioncontractsnapshotop.py +69 -0
  184. finance_dev/models/getoptiondetailsop.py +56 -0
  185. finance_dev/models/getoptiondetailsresponse.py +45 -0
  186. finance_dev/models/getoptionlasttradeop.py +56 -0
  187. finance_dev/models/getoptionopencloseop.py +66 -0
  188. finance_dev/models/getoptionpreviousdayop.py +56 -0
  189. finance_dev/models/getoptionquotesop.py +177 -0
  190. finance_dev/models/getoptionsactivityop.py +111 -0
  191. finance_dev/models/getoptionsetfstopvolumeop.py +70 -0
  192. finance_dev/models/getoptionsstockstopgainersop.py +70 -0
  193. finance_dev/models/getoptionsstockstopvolumeop.py +70 -0
  194. finance_dev/models/getoptionsunusualactivityop.py +100 -0
  195. finance_dev/models/getoptiontradesop.py +177 -0
  196. finance_dev/models/getordersv2response.py +66 -0
  197. finance_dev/models/getownershipdataop.py +77 -0
  198. finance_dev/models/getpositionsresponse.py +39 -0
  199. finance_dev/models/getpredictionorderop.py +88 -0
  200. finance_dev/models/getpricetargetop.py +53 -0
  201. finance_dev/models/getquotesop.py +53 -0
  202. finance_dev/models/getratingsop.py +164 -0
  203. finance_dev/models/getratingsresponse.py +39 -0
  204. finance_dev/models/getreportedfinancialsop.py +127 -0
  205. finance_dev/models/getrevenuebreakdownop.py +85 -0
  206. finance_dev/models/getrevenueestimatesop.py +91 -0
  207. finance_dev/models/getsecfilingsop.py +113 -0
  208. finance_dev/models/getsectortickersop.py +124 -0
  209. finance_dev/models/getsectorwisechangeop.py +84 -0
  210. finance_dev/models/getshortinterestop.py +334 -0
  211. finance_dev/models/getshortvolumeop.py +333 -0
  212. finance_dev/models/getsocialsentimentop.py +90 -0
  213. finance_dev/models/getspinoffsop.py +112 -0
  214. finance_dev/models/getstockaggregatesop.py +174 -0
  215. finance_dev/models/getstocklastquoteop.py +56 -0
  216. finance_dev/models/getstocklasttradeop.py +56 -0
  217. finance_dev/models/getstockopencloseop.py +90 -0
  218. finance_dev/models/getstockpreviousdayop.py +80 -0
  219. finance_dev/models/getstockquotesop.py +177 -0
  220. finance_dev/models/getstocksnapshotsop.py +82 -0
  221. finance_dev/models/getstocksplitsop.py +243 -0
  222. finance_dev/models/getstocktradesop.py +177 -0
  223. finance_dev/models/getsupplychainop.py +53 -0
  224. finance_dev/models/getsupportresistancelevelsop.py +90 -0
  225. finance_dev/models/getsymbolinfoop.py +53 -0
  226. finance_dev/models/gettechnicalindicatorop.py +172 -0
  227. finance_dev/models/gettechnicalpatternsop.py +88 -0
  228. finance_dev/models/gettenderoffersop.py +112 -0
  229. finance_dev/models/gettickhistoryop.py +104 -0
  230. finance_dev/models/gettopgainersop.py +78 -0
  231. finance_dev/models/gettoplosersop.py +78 -0
  232. finance_dev/models/gettopmostactiveop.py +78 -0
  233. finance_dev/models/gettranscriptop.py +53 -0
  234. finance_dev/models/gettreasuryyieldsop.py +157 -0
  235. finance_dev/models/getunifiedsnapshotop.py +223 -0
  236. finance_dev/models/getupgradesdowngradesop.py +91 -0
  237. finance_dev/models/getusaspendingop.py +70 -0
  238. finance_dev/models/getuseraccountsop.py +40 -0
  239. finance_dev/models/getusptopatentsop.py +70 -0
  240. finance_dev/models/getvisaapplicationsop.py +73 -0
  241. finance_dev/models/historicalesgresponse.py +439 -0
  242. finance_dev/models/httpmetadata.py +24 -0
  243. finance_dev/models/incomestatement.py +296 -0
  244. finance_dev/models/incomestatementsresponse.py +61 -0
  245. finance_dev/models/indexbarresponse.py +194 -0
  246. finance_dev/models/indexbarsresponse.py +123 -0
  247. finance_dev/models/indexchartbarsresponse.py +213 -0
  248. finance_dev/models/indexgroupsresponse.py +78 -0
  249. finance_dev/models/indexlistresponse.py +95 -0
  250. finance_dev/models/indexsearchresponse.py +93 -0
  251. finance_dev/models/indicesbygroupresponse.py +93 -0
  252. finance_dev/models/indicesidentifiertype.py +28 -0
  253. finance_dev/models/indicesrealtimeindexinfo.py +67 -0
  254. finance_dev/models/indicesrealtimeindexvalue.py +157 -0
  255. finance_dev/models/indicesrealtimevaluesitem.py +80 -0
  256. finance_dev/models/indicesrealtimevaluesresponse.py +42 -0
  257. finance_dev/models/inflationexpectationsresponse.py +140 -0
  258. finance_dev/models/inflationresponse.py +132 -0
  259. finance_dev/models/insidertransaction.py +97 -0
  260. finance_dev/models/insidertransactionsresponse.py +39 -0
  261. finance_dev/models/institutionalholding.py +77 -0
  262. finance_dev/models/institutionalownershipresponse.py +39 -0
  263. finance_dev/models/institutionalportfolioresponse.py +39 -0
  264. finance_dev/models/investmentthemeid.py +35 -0
  265. finance_dev/models/investmentthemeresponse.py +80 -0
  266. finance_dev/models/ipocalendarresponse.py +39 -0
  267. finance_dev/models/ipoitem.py +93 -0
  268. finance_dev/models/listactiveordersop.py +87 -0
  269. finance_dev/models/listcategoriesop.py +79 -0
  270. finance_dev/models/listindexgroupsop.py +40 -0
  271. finance_dev/models/listindicesbygroupop.py +58 -0
  272. finance_dev/models/listindicesop.py +91 -0
  273. finance_dev/models/listoptioncontractsop.py +66 -0
  274. finance_dev/models/listoptionexpirydatesop.py +56 -0
  275. finance_dev/models/listorderhistoryop.py +139 -0
  276. finance_dev/models/listpredictionordersop.py +134 -0
  277. finance_dev/models/listtranscriptsop.py +53 -0
  278. finance_dev/models/lobbyingresponse.py +166 -0
  279. finance_dev/models/logosearchresponse.py +152 -0
  280. finance_dev/models/logosyncresponse.py +277 -0
  281. finance_dev/models/marketbreadth.py +97 -0
  282. finance_dev/models/marketbreadthresponse.py +44 -0
  283. finance_dev/models/marketholiday.py +56 -0
  284. finance_dev/models/marketholidayresponse.py +39 -0
  285. finance_dev/models/marketstatus.py +67 -0
  286. finance_dev/models/mergersandacquisitionsresponse.py +186 -0
  287. finance_dev/models/metricseriespoint.py +43 -0
  288. finance_dev/models/netinflow.py +81 -0
  289. finance_dev/models/netinflowresponse.py +44 -0
  290. finance_dev/models/newsitem.py +102 -0
  291. finance_dev/models/newslistresponse.py +128 -0
  292. finance_dev/models/newssentimentresponse.py +176 -0
  293. finance_dev/models/newstypeenum.py +16 -0
  294. finance_dev/models/optionchainsnapshotresponse.py +64 -0
  295. finance_dev/models/optioncontractsnapshotresponse.py +64 -0
  296. finance_dev/models/optioncontractsnapshotrow.py +164 -0
  297. finance_dev/models/optioncontractsresponse.py +131 -0
  298. finance_dev/models/optiondetailsdto.py +72 -0
  299. finance_dev/models/optionexpirydatesresponse.py +53 -0
  300. finance_dev/models/optionlasttraderesponse.py +169 -0
  301. finance_dev/models/optionopencloseresponse.py +97 -0
  302. finance_dev/models/optionpreviousdayresponse.py +89 -0
  303. finance_dev/models/optionquotesresponse.py +138 -0
  304. finance_dev/models/optionsactivityresponse.py +265 -0
  305. finance_dev/models/optionsnapshotcontractdetails.py +85 -0
  306. finance_dev/models/optionsnapshotdaybar.py +107 -0
  307. finance_dev/models/optionsnapshotgreeks.py +67 -0
  308. finance_dev/models/optionsnapshotlastquote.py +116 -0
  309. finance_dev/models/optionsnapshotlasttrade.py +102 -0
  310. finance_dev/models/optionsnapshotunderlying.py +86 -0
  311. finance_dev/models/optionsscreeneritem.py +151 -0
  312. finance_dev/models/optionsunusualactivityresponse.py +62 -0
  313. finance_dev/models/optionsunusualactivitytrade.py +103 -0
  314. finance_dev/models/optiontradesresponse.py +132 -0
  315. finance_dev/models/orderrequesttimeinforceenum.py +29 -0
  316. finance_dev/models/ordersideenum.py +20 -0
  317. finance_dev/models/ordertypeenum.py +20 -0
  318. finance_dev/models/ordleg.py +162 -0
  319. finance_dev/models/ordresponse.py +202 -0
  320. finance_dev/models/ownershipdataresponse.py +39 -0
  321. finance_dev/models/ownershiprecord.py +74 -0
  322. finance_dev/models/placeorderop.py +40 -0
  323. finance_dev/models/placeordrequest_union.py +335 -0
  324. finance_dev/models/placepredictionorderop.py +114 -0
  325. finance_dev/models/predmdbaseevent.py +62 -0
  326. finance_dev/models/predmdbaseeventhit.py +53 -0
  327. finance_dev/models/predmdbaseeventsearchresult.py +46 -0
  328. finance_dev/models/predmdbaseeventwithevents.py +32 -0
  329. finance_dev/models/predmdbatchhistoryrequest.py +16 -0
  330. finance_dev/models/predmdbatchhistoryresponse.py +16 -0
  331. finance_dev/models/predmdcategory.py +48 -0
  332. finance_dev/models/predmdcontract.py +177 -0
  333. finance_dev/models/predmdcontracthit.py +157 -0
  334. finance_dev/models/predmdcontractsearchresult.py +46 -0
  335. finance_dev/models/predmdevent.py +136 -0
  336. finance_dev/models/predmdeventhit.py +73 -0
  337. finance_dev/models/predmdeventsearchresult.py +46 -0
  338. finance_dev/models/predmdeventwithcontracts.py +22 -0
  339. finance_dev/models/predmdhistoryrequest.py +59 -0
  340. finance_dev/models/predmdhistoryresponse.py +53 -0
  341. finance_dev/models/predmdtick.py +53 -0
  342. finance_dev/models/predordersapperror.py +78 -0
  343. finance_dev/models/predordersorder.py +267 -0
  344. finance_dev/models/predordersorderdetail.py +26 -0
  345. finance_dev/models/predordersorderpage.py +45 -0
  346. finance_dev/models/predordersorderreport.py +88 -0
  347. finance_dev/models/predordersplaceorderrequest.py +159 -0
  348. finance_dev/models/previeworderop.py +40 -0
  349. finance_dev/models/previeworderresponse.py +127 -0
  350. finance_dev/models/pricetargetresponse.py +89 -0
  351. finance_dev/models/quotedata.py +49 -0
  352. finance_dev/models/quotesresponse.py +62 -0
  353. finance_dev/models/quotevalues.py +114 -0
  354. finance_dev/models/rating.py +193 -0
  355. finance_dev/models/ratingsaccuracy.py +242 -0
  356. finance_dev/models/replaceconfigwatchlistsop.py +40 -0
  357. finance_dev/models/replaceorderop.py +40 -0
  358. finance_dev/models/replaceordrequest_union.py +367 -0
  359. finance_dev/models/replaceordresponse.py +144 -0
  360. finance_dev/models/reportedbsitem.py +53 -0
  361. finance_dev/models/reportedfiling.py +110 -0
  362. finance_dev/models/reportedreport.py +39 -0
  363. finance_dev/models/reportingfrequency.py +16 -0
  364. finance_dev/models/revenuebreakdownaxis.py +52 -0
  365. finance_dev/models/revenuebreakdowndatapoint.py +58 -0
  366. finance_dev/models/revenuebreakdownentry.py +51 -0
  367. finance_dev/models/revenuebreakdowninner.py +75 -0
  368. finance_dev/models/revenueestimatesresponse.py +176 -0
  369. finance_dev/models/screenclause.py +70 -0
  370. finance_dev/models/screengroup.py +75 -0
  371. finance_dev/models/searchetbsymbolsop.py +40 -0
  372. finance_dev/models/searchindicesop.py +55 -0
  373. finance_dev/models/searchlogosop.py +158 -0
  374. finance_dev/models/searchmarketsymbolsop.py +80 -0
  375. finance_dev/models/searchop.py +232 -0
  376. finance_dev/models/searchsymbolitem.py +76 -0
  377. finance_dev/models/searchsymbolresponseitem.py +71 -0
  378. finance_dev/models/searchsymbolsop.py +77 -0
  379. finance_dev/models/secfiling.py +91 -0
  380. finance_dev/models/secfilingsresponse.py +39 -0
  381. finance_dev/models/sectoravgchange.py +50 -0
  382. finance_dev/models/security.py +59 -0
  383. finance_dev/models/securitytypeenum.py +16 -0
  384. finance_dev/models/shortinterestresponse.py +126 -0
  385. finance_dev/models/shortvolumeresponse.py +198 -0
  386. finance_dev/models/socialsentimentresponse.py +124 -0
  387. finance_dev/models/sortorderenum.py +13 -0
  388. finance_dev/models/spinoffsresponse.py +136 -0
  389. finance_dev/models/stockaggregatesresponse.py +92 -0
  390. finance_dev/models/stocklastquoteresponse.py +175 -0
  391. finance_dev/models/stocklasttraderesponse.py +169 -0
  392. finance_dev/models/stockohlcbar.py +85 -0
  393. finance_dev/models/stockopencloseresponse.py +109 -0
  394. finance_dev/models/stockpreviousdayresponse.py +86 -0
  395. finance_dev/models/stockquotesresponse.py +170 -0
  396. finance_dev/models/stockscreenerop.py +144 -0
  397. finance_dev/models/stockscreenerrequest.py +131 -0
  398. finance_dev/models/stockscreenerresponse.py +197 -0
  399. finance_dev/models/stocksnapshotsresponse.py +454 -0
  400. finance_dev/models/stocksplitsresponse.py +144 -0
  401. finance_dev/models/stocktradesresponse.py +164 -0
  402. finance_dev/models/supplychainresponse.py +158 -0
  403. finance_dev/models/supportresistancelevelsresponse.py +68 -0
  404. finance_dev/models/symboldetails.py +119 -0
  405. finance_dev/models/symbolerror.py +43 -0
  406. finance_dev/models/symbolinfo.py +183 -0
  407. finance_dev/models/synclogosop.py +146 -0
  408. finance_dev/models/technicalindicatorresponse.py +43 -0
  409. finance_dev/models/technicalindicatortype.py +21 -0
  410. finance_dev/models/technicalpatternsresponse.py +249 -0
  411. finance_dev/models/tenderofferidentifiertype.py +26 -0
  412. finance_dev/models/tenderoffersresponse.py +548 -0
  413. finance_dev/models/tickchartbars.py +104 -0
  414. finance_dev/models/tickresolution.py +20 -0
  415. finance_dev/models/timeinforceenum.py +26 -0
  416. finance_dev/models/tradeorderlegv2.py +164 -0
  417. finance_dev/models/tradeorderv2.py +434 -0
  418. finance_dev/models/transcriptresponse.py +162 -0
  419. finance_dev/models/transcriptsresponse.py +89 -0
  420. finance_dev/models/treasuryyieldsresponse.py +160 -0
  421. finance_dev/models/unifiedsnapshotresponse.py +308 -0
  422. finance_dev/models/updateconfigwatchlistbyidop.py +65 -0
  423. finance_dev/models/updatewatchlistrequest_union.py +134 -0
  424. finance_dev/models/upgradesdowngradesresponse.py +98 -0
  425. finance_dev/models/usaspendingresponse.py +222 -0
  426. finance_dev/models/usptopatentsresponse.py +134 -0
  427. finance_dev/models/visaapplicationsresponse.py +228 -0
  428. finance_dev/models/watchlist.py +68 -0
  429. finance_dev/models/watchlistrequest.py +43 -0
  430. finance_dev/models/watchlistresponse.py +44 -0
  431. finance_dev/news_sdk.py +829 -0
  432. finance_dev/options.py +3443 -0
  433. finance_dev/orders.py +1907 -0
  434. finance_dev/ownership.py +1386 -0
  435. finance_dev/predictions.py +29 -0
  436. finance_dev/predictions_orders.py +852 -0
  437. finance_dev/py.typed +1 -0
  438. finance_dev/sdk.py +347 -0
  439. finance_dev/sdkconfiguration.py +50 -0
  440. finance_dev/signals.py +338 -0
  441. finance_dev/stocks.py +3131 -0
  442. finance_dev/technicalanalysis_sdk.py +1137 -0
  443. finance_dev/types/__init__.py +25 -0
  444. finance_dev/types/base64fileinput.py +44 -0
  445. finance_dev/types/basemodel.py +78 -0
  446. finance_dev/utils/__init__.py +181 -0
  447. finance_dev/utils/annotations.py +80 -0
  448. finance_dev/utils/datetimes.py +42 -0
  449. finance_dev/utils/dynamic_imports.py +55 -0
  450. finance_dev/utils/enums.py +135 -0
  451. finance_dev/utils/eventstreaming.py +327 -0
  452. finance_dev/utils/forms.py +240 -0
  453. finance_dev/utils/headers.py +137 -0
  454. finance_dev/utils/logger.py +23 -0
  455. finance_dev/utils/metadata.py +120 -0
  456. finance_dev/utils/queryparams.py +218 -0
  457. finance_dev/utils/requestbodies.py +68 -0
  458. finance_dev/utils/retries.py +373 -0
  459. finance_dev/utils/security.py +199 -0
  460. finance_dev/utils/serializers.py +327 -0
  461. finance_dev/utils/unmarshal_json_response.py +39 -0
  462. finance_dev/utils/url.py +155 -0
  463. finance_dev/utils/values.py +143 -0
  464. finance_dev/watchlist_sdk.py +1583 -0
  465. finance_dev/websocket/__init__.py +57 -0
  466. finance_dev/websocket/account.py +5 -0
  467. finance_dev/websocket/auth.py +124 -0
  468. finance_dev/websocket/chart.py +5 -0
  469. finance_dev/websocket/codec.py +66 -0
  470. finance_dev/websocket/config.py +52 -0
  471. finance_dev/websocket/errors.py +54 -0
  472. finance_dev/websocket/market.py +5 -0
  473. finance_dev/websocket/models/__init__.py +52 -0
  474. finance_dev/websocket/models/account.py +60 -0
  475. finance_dev/websocket/models/chart.py +44 -0
  476. finance_dev/websocket/models/common.py +85 -0
  477. finance_dev/websocket/models/market.py +113 -0
  478. finance_dev/websocket/resources.py +327 -0
  479. finance_dev/websocket/sdk.py +13 -0
  480. finance_dev/websocket/transport/async_connection.py +493 -0
  481. finance_dev/websocket/transport/base.py +78 -0
  482. finance_dev/websocket/transport/sync_connection.py +470 -0
  483. finance_dev-0.9.0.dist-info/METADATA +913 -0
  484. finance_dev-0.9.0.dist-info/RECORD +486 -0
  485. finance_dev-0.9.0.dist-info/WHEEL +5 -0
  486. finance_dev-0.9.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,136 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: dcd695b1e3d7
3
+
4
+ from __future__ import annotations
5
+ from datetime import datetime
6
+ from finance_dev.types import (
7
+ BaseModel,
8
+ Nullable,
9
+ OptionalNullable,
10
+ UNSET,
11
+ UNSET_SENTINEL,
12
+ )
13
+ import pydantic
14
+ from pydantic import model_serializer
15
+ from typing import Optional
16
+ from typing_extensions import Annotated, NotRequired, TypedDict
17
+
18
+
19
+ class PredMdEventTypedDict(TypedDict):
20
+ r"""One real-world event under a base event (e.g. HORC_1126)."""
21
+
22
+ base_event_id: str
23
+ event_id: str
24
+ last_synced_at: datetime
25
+ calculation_method: NotRequired[str]
26
+ event_display_name: NotRequired[str]
27
+ event_question: NotRequired[str]
28
+ expected_last_trade_time: NotRequired[Nullable[datetime]]
29
+ r"""Venue wall-clock time; the feed carries no zone, so the Z is a label, not a conversion."""
30
+ expected_payout_time: NotRequired[Nullable[datetime]]
31
+ r"""Venue wall-clock time; the feed carries no zone, so the Z is a label, not a conversion."""
32
+ expected_resolution_time: NotRequired[Nullable[datetime]]
33
+ r"""Venue wall-clock time; the feed carries no zone, so the Z is a label, not a conversion."""
34
+ source_agency: NotRequired[str]
35
+ source_agency_url: NotRequired[str]
36
+ time_specifier: NotRequired[str]
37
+ r"""Published precision: YYYY, YYYY.MM or YYYY.MM.DD."""
38
+ underlying_spec: NotRequired[str]
39
+
40
+
41
+ class PredMdEvent(BaseModel):
42
+ r"""One real-world event under a base event (e.g. HORC_1126)."""
43
+
44
+ base_event_id: Annotated[str, pydantic.Field(alias="baseEventId")]
45
+
46
+ event_id: Annotated[str, pydantic.Field(alias="eventId")]
47
+
48
+ last_synced_at: Annotated[datetime, pydantic.Field(alias="lastSyncedAt")]
49
+
50
+ calculation_method: Annotated[
51
+ Optional[str], pydantic.Field(alias="calculationMethod")
52
+ ] = None
53
+
54
+ event_display_name: Annotated[
55
+ Optional[str], pydantic.Field(alias="eventDisplayName")
56
+ ] = None
57
+
58
+ event_question: Annotated[Optional[str], pydantic.Field(alias="eventQuestion")] = (
59
+ None
60
+ )
61
+
62
+ expected_last_trade_time: Annotated[
63
+ OptionalNullable[datetime], pydantic.Field(alias="expectedLastTradeTime")
64
+ ] = UNSET
65
+ r"""Venue wall-clock time; the feed carries no zone, so the Z is a label, not a conversion."""
66
+
67
+ expected_payout_time: Annotated[
68
+ OptionalNullable[datetime], pydantic.Field(alias="expectedPayoutTime")
69
+ ] = UNSET
70
+ r"""Venue wall-clock time; the feed carries no zone, so the Z is a label, not a conversion."""
71
+
72
+ expected_resolution_time: Annotated[
73
+ OptionalNullable[datetime], pydantic.Field(alias="expectedResolutionTime")
74
+ ] = UNSET
75
+ r"""Venue wall-clock time; the feed carries no zone, so the Z is a label, not a conversion."""
76
+
77
+ source_agency: Annotated[Optional[str], pydantic.Field(alias="sourceAgency")] = None
78
+
79
+ source_agency_url: Annotated[
80
+ Optional[str], pydantic.Field(alias="sourceAgencyUrl")
81
+ ] = None
82
+
83
+ time_specifier: Annotated[Optional[str], pydantic.Field(alias="timeSpecifier")] = (
84
+ None
85
+ )
86
+ r"""Published precision: YYYY, YYYY.MM or YYYY.MM.DD."""
87
+
88
+ underlying_spec: Annotated[
89
+ Optional[str], pydantic.Field(alias="underlyingSpec")
90
+ ] = None
91
+
92
+ @model_serializer(mode="wrap")
93
+ def serialize_model(self, handler):
94
+ optional_fields = set(
95
+ [
96
+ "calculationMethod",
97
+ "eventDisplayName",
98
+ "eventQuestion",
99
+ "expectedLastTradeTime",
100
+ "expectedPayoutTime",
101
+ "expectedResolutionTime",
102
+ "sourceAgency",
103
+ "sourceAgencyUrl",
104
+ "timeSpecifier",
105
+ "underlyingSpec",
106
+ ]
107
+ )
108
+ nullable_fields = set(
109
+ ["expectedLastTradeTime", "expectedPayoutTime", "expectedResolutionTime"]
110
+ )
111
+ serialized = handler(self)
112
+ m = {}
113
+
114
+ for n, f in type(self).model_fields.items():
115
+ k = f.alias or n
116
+ val = serialized.get(k, serialized.get(n))
117
+ is_nullable_and_explicitly_set = (
118
+ k in nullable_fields
119
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
120
+ )
121
+
122
+ if val != UNSET_SENTINEL:
123
+ if (
124
+ val is not None
125
+ or k not in optional_fields
126
+ or is_nullable_and_explicitly_set
127
+ ):
128
+ m[k] = val
129
+
130
+ return m
131
+
132
+
133
+ try:
134
+ PredMdEvent.model_rebuild()
135
+ except NameError:
136
+ pass
@@ -0,0 +1,73 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 3c77dcced425
3
+
4
+ from __future__ import annotations
5
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
6
+ import pydantic
7
+ from pydantic import model_serializer
8
+ from typing import Optional
9
+ from typing_extensions import Annotated, NotRequired, TypedDict
10
+
11
+
12
+ class PredMdEventHitTypedDict(TypedDict):
13
+ r"""One event with at least one matching contract."""
14
+
15
+ base_event_id: str
16
+ contracts_found: int
17
+ r"""Every matching contract under this hit. Read them with type=contracts and eventId or baseEventId."""
18
+ event_id: str
19
+ event_display_name: NotRequired[str]
20
+ event_question: NotRequired[str]
21
+ time_specifier: NotRequired[str]
22
+ underlying_spec: NotRequired[str]
23
+
24
+
25
+ class PredMdEventHit(BaseModel):
26
+ r"""One event with at least one matching contract."""
27
+
28
+ base_event_id: Annotated[str, pydantic.Field(alias="baseEventId")]
29
+
30
+ contracts_found: Annotated[int, pydantic.Field(alias="contractsFound")]
31
+ r"""Every matching contract under this hit. Read them with type=contracts and eventId or baseEventId."""
32
+
33
+ event_id: Annotated[str, pydantic.Field(alias="eventId")]
34
+
35
+ event_display_name: Annotated[
36
+ Optional[str], pydantic.Field(alias="eventDisplayName")
37
+ ] = None
38
+
39
+ event_question: Annotated[Optional[str], pydantic.Field(alias="eventQuestion")] = (
40
+ None
41
+ )
42
+
43
+ time_specifier: Annotated[Optional[str], pydantic.Field(alias="timeSpecifier")] = (
44
+ None
45
+ )
46
+
47
+ underlying_spec: Annotated[
48
+ Optional[str], pydantic.Field(alias="underlyingSpec")
49
+ ] = None
50
+
51
+ @model_serializer(mode="wrap")
52
+ def serialize_model(self, handler):
53
+ optional_fields = set(
54
+ ["eventDisplayName", "eventQuestion", "timeSpecifier", "underlyingSpec"]
55
+ )
56
+ serialized = handler(self)
57
+ m = {}
58
+
59
+ for n, f in type(self).model_fields.items():
60
+ k = f.alias or n
61
+ val = serialized.get(k, serialized.get(n))
62
+
63
+ if val != UNSET_SENTINEL:
64
+ if val is not None or k not in optional_fields:
65
+ m[k] = val
66
+
67
+ return m
68
+
69
+
70
+ try:
71
+ PredMdEventHit.model_rebuild()
72
+ except NameError:
73
+ pass
@@ -0,0 +1,46 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 3d8d63a77490
3
+
4
+ from __future__ import annotations
5
+ from .predmdeventhit import PredMdEventHit, PredMdEventHitTypedDict
6
+ from enum import Enum
7
+ from finance_dev.types import BaseModel
8
+ import pydantic
9
+ from typing import List
10
+ from typing_extensions import Annotated, TypedDict
11
+
12
+
13
+ class PredMdEventSearchResultType(str, Enum):
14
+ EVENTS = "events"
15
+
16
+
17
+ class PredMdEventSearchResultTypedDict(TypedDict):
18
+ r"""One page of events. found, page and perPage count events."""
19
+
20
+ found: int
21
+ r"""Every match, not just this page."""
22
+ hits: List[PredMdEventHitTypedDict]
23
+ page: int
24
+ per_page: int
25
+ type: PredMdEventSearchResultType
26
+
27
+
28
+ class PredMdEventSearchResult(BaseModel):
29
+ r"""One page of events. found, page and perPage count events."""
30
+
31
+ found: int
32
+ r"""Every match, not just this page."""
33
+
34
+ hits: List[PredMdEventHit]
35
+
36
+ page: int
37
+
38
+ per_page: Annotated[int, pydantic.Field(alias="perPage")]
39
+
40
+ type: PredMdEventSearchResultType
41
+
42
+
43
+ try:
44
+ PredMdEventSearchResult.model_rebuild()
45
+ except NameError:
46
+ pass
@@ -0,0 +1,22 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: e6d5a7cf495a
3
+
4
+ from __future__ import annotations
5
+ from .predmdcontract import PredMdContract, PredMdContractTypedDict
6
+ from .predmdevent import PredMdEvent, PredMdEventTypedDict
7
+ from finance_dev.types import BaseModel
8
+ from typing import List
9
+ from typing_extensions import TypedDict
10
+
11
+
12
+ class PredMdEventWithContractsTypedDict(TypedDict):
13
+ contracts: List[PredMdContractTypedDict]
14
+ event: PredMdEventTypedDict
15
+ r"""One real-world event under a base event (e.g. HORC_1126)."""
16
+
17
+
18
+ class PredMdEventWithContracts(BaseModel):
19
+ contracts: List[PredMdContract]
20
+
21
+ event: PredMdEvent
22
+ r"""One real-world event under a base event (e.g. HORC_1126)."""
@@ -0,0 +1,59 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 6cad9408e342
3
+
4
+ from __future__ import annotations
5
+ from datetime import datetime
6
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
7
+ import pydantic
8
+ from pydantic import model_serializer
9
+ from typing import Optional
10
+ from typing_extensions import Annotated, NotRequired, TypedDict
11
+
12
+
13
+ class PredMdHistoryRequestTypedDict(TypedDict):
14
+ r"""Single query within a batch historical-data request."""
15
+
16
+ symbol: str
17
+ from_: NotRequired[datetime]
18
+ r"""Inclusive lower bound. Zero/omitted means unbounded."""
19
+ limit: NotRequired[int]
20
+ r"""0 or omitted means 10000; values above 10000 are clamped to it."""
21
+ to: NotRequired[datetime]
22
+ r"""Inclusive upper bound. Zero/omitted means unbounded."""
23
+
24
+
25
+ class PredMdHistoryRequest(BaseModel):
26
+ r"""Single query within a batch historical-data request."""
27
+
28
+ symbol: str
29
+
30
+ from_: Annotated[Optional[datetime], pydantic.Field(alias="from")] = None
31
+ r"""Inclusive lower bound. Zero/omitted means unbounded."""
32
+
33
+ limit: Optional[int] = None
34
+ r"""0 or omitted means 10000; values above 10000 are clamped to it."""
35
+
36
+ to: Optional[datetime] = None
37
+ r"""Inclusive upper bound. Zero/omitted means unbounded."""
38
+
39
+ @model_serializer(mode="wrap")
40
+ def serialize_model(self, handler):
41
+ optional_fields = set(["from", "limit", "to"])
42
+ serialized = handler(self)
43
+ m = {}
44
+
45
+ for n, f in type(self).model_fields.items():
46
+ k = f.alias or n
47
+ val = serialized.get(k, serialized.get(n))
48
+
49
+ if val != UNSET_SENTINEL:
50
+ if val is not None or k not in optional_fields:
51
+ m[k] = val
52
+
53
+ return m
54
+
55
+
56
+ try:
57
+ PredMdHistoryRequest.model_rebuild()
58
+ except NameError:
59
+ pass
@@ -0,0 +1,53 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 50fd4a633da8
3
+
4
+ from __future__ import annotations
5
+ from .predmdtick import PredMdTick, PredMdTickTypedDict
6
+ from datetime import datetime
7
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
8
+ import pydantic
9
+ from pydantic import model_serializer
10
+ from typing import List, Optional
11
+ from typing_extensions import Annotated, NotRequired, TypedDict
12
+
13
+
14
+ class PredMdHistoryResponseTypedDict(TypedDict):
15
+ count: int
16
+ symbol: str
17
+ ticks: List[PredMdTickTypedDict]
18
+ from_: NotRequired[datetime]
19
+ to: NotRequired[datetime]
20
+
21
+
22
+ class PredMdHistoryResponse(BaseModel):
23
+ count: int
24
+
25
+ symbol: str
26
+
27
+ ticks: List[PredMdTick]
28
+
29
+ from_: Annotated[Optional[datetime], pydantic.Field(alias="from")] = None
30
+
31
+ to: Optional[datetime] = None
32
+
33
+ @model_serializer(mode="wrap")
34
+ def serialize_model(self, handler):
35
+ optional_fields = set(["from", "to"])
36
+ serialized = handler(self)
37
+ m = {}
38
+
39
+ for n, f in type(self).model_fields.items():
40
+ k = f.alias or n
41
+ val = serialized.get(k, serialized.get(n))
42
+
43
+ if val != UNSET_SENTINEL:
44
+ if val is not None or k not in optional_fields:
45
+ m[k] = val
46
+
47
+ return m
48
+
49
+
50
+ try:
51
+ PredMdHistoryResponse.model_rebuild()
52
+ except NameError:
53
+ pass
@@ -0,0 +1,53 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 32ce982b73f2
3
+
4
+ from __future__ import annotations
5
+ from datetime import datetime
6
+ from decimal import Decimal
7
+ from finance_dev.types import BaseModel
8
+ from finance_dev.utils import serialize_decimal, validate_decimal
9
+ import pydantic
10
+ from pydantic.functional_serializers import PlainSerializer
11
+ from pydantic.functional_validators import BeforeValidator
12
+ from typing_extensions import Annotated, TypedDict
13
+
14
+
15
+ class PredMdTickTypedDict(TypedDict):
16
+ no_price: Decimal
17
+ r"""Exact decimal, serialized as a string so no client parses it through a float."""
18
+ quantity: int
19
+ timestamp: datetime
20
+ yes_price: Decimal
21
+ r"""Exact decimal, serialized as a string so no client parses it through a float."""
22
+
23
+
24
+ class PredMdTick(BaseModel):
25
+ no_price: Annotated[
26
+ Annotated[
27
+ Decimal,
28
+ BeforeValidator(validate_decimal),
29
+ PlainSerializer(serialize_decimal(True)),
30
+ ],
31
+ pydantic.Field(alias="noPrice"),
32
+ ]
33
+ r"""Exact decimal, serialized as a string so no client parses it through a float."""
34
+
35
+ quantity: int
36
+
37
+ timestamp: datetime
38
+
39
+ yes_price: Annotated[
40
+ Annotated[
41
+ Decimal,
42
+ BeforeValidator(validate_decimal),
43
+ PlainSerializer(serialize_decimal(True)),
44
+ ],
45
+ pydantic.Field(alias="yesPrice"),
46
+ ]
47
+ r"""Exact decimal, serialized as a string so no client parses it through a float."""
48
+
49
+
50
+ try:
51
+ PredMdTick.model_rebuild()
52
+ except NameError:
53
+ pass
@@ -0,0 +1,78 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 0473e4e109a9
3
+
4
+ from __future__ import annotations
5
+ from enum import Enum
6
+ from finance_dev import models, utils
7
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
8
+ from pydantic import field_serializer, model_serializer
9
+ from typing import Any, Dict, Optional
10
+ from typing_extensions import NotRequired, TypedDict
11
+
12
+
13
+ class PredOrdersAppErrorType(str, Enum, metaclass=utils.OpenEnumMeta):
14
+ r"""Categorical error type, in lowercase."""
15
+
16
+ BAD_REQUEST = "bad_request"
17
+ AUTHENTICATION = "authentication"
18
+ NOT_FOUND = "not_found"
19
+ CONFLICT = "conflict"
20
+ RATE_LIMIT = "rate_limit"
21
+ UNAVAILABLE = "unavailable"
22
+ TIMEOUT = "timeout"
23
+ INTERNAL = "internal"
24
+
25
+
26
+ class PredOrdersAppErrorTypedDict(TypedDict):
27
+ r"""Structured error returned by the prediction-market order endpoints."""
28
+
29
+ code: str
30
+ r"""Machine-readable code, e.g. `INVALID_ORDER`, `ORDER_OUTCOME_UNKNOWN`. Branch on this."""
31
+ message: str
32
+ r"""Human-readable detail. Exact text is not fixed and should not be matched on."""
33
+ type: PredOrdersAppErrorType
34
+ r"""Categorical error type, in lowercase."""
35
+ details: NotRequired[Dict[str, Any]]
36
+ request_id: NotRequired[str]
37
+
38
+
39
+ class PredOrdersAppError(BaseModel):
40
+ r"""Structured error returned by the prediction-market order endpoints."""
41
+
42
+ code: str
43
+ r"""Machine-readable code, e.g. `INVALID_ORDER`, `ORDER_OUTCOME_UNKNOWN`. Branch on this."""
44
+
45
+ message: str
46
+ r"""Human-readable detail. Exact text is not fixed and should not be matched on."""
47
+
48
+ type: PredOrdersAppErrorType
49
+ r"""Categorical error type, in lowercase."""
50
+
51
+ details: Optional[Dict[str, Any]] = None
52
+
53
+ request_id: Optional[str] = None
54
+
55
+ @field_serializer("type")
56
+ def serialize_type(self, value):
57
+ if isinstance(value, str):
58
+ try:
59
+ return models.PredOrdersAppErrorType(value)
60
+ except ValueError:
61
+ return value
62
+ return value
63
+
64
+ @model_serializer(mode="wrap")
65
+ def serialize_model(self, handler):
66
+ optional_fields = set(["details", "request_id"])
67
+ serialized = handler(self)
68
+ m = {}
69
+
70
+ for n, f in type(self).model_fields.items():
71
+ k = f.alias or n
72
+ val = serialized.get(k, serialized.get(n))
73
+
74
+ if val != UNSET_SENTINEL:
75
+ if val is not None or k not in optional_fields:
76
+ m[k] = val
77
+
78
+ return m