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,53 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 45847caa6537
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 PredMdBaseEventHitTypedDict(TypedDict):
13
+ r"""One base event with at least one matching contract. The index carries no display name; read it through /base-events/{baseEventId}."""
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
+ underlying_spec: NotRequired[str]
19
+
20
+
21
+ class PredMdBaseEventHit(BaseModel):
22
+ r"""One base event with at least one matching contract. The index carries no display name; read it through /base-events/{baseEventId}."""
23
+
24
+ base_event_id: Annotated[str, pydantic.Field(alias="baseEventId")]
25
+
26
+ contracts_found: Annotated[int, pydantic.Field(alias="contractsFound")]
27
+ r"""Every matching contract under this hit. Read them with type=contracts and eventId or baseEventId."""
28
+
29
+ underlying_spec: Annotated[
30
+ Optional[str], pydantic.Field(alias="underlyingSpec")
31
+ ] = None
32
+
33
+ @model_serializer(mode="wrap")
34
+ def serialize_model(self, handler):
35
+ optional_fields = set(["underlyingSpec"])
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
+ PredMdBaseEventHit.model_rebuild()
52
+ except NameError:
53
+ pass
@@ -0,0 +1,46 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: ea3bd5e6cf4b
3
+
4
+ from __future__ import annotations
5
+ from .predmdbaseeventhit import PredMdBaseEventHit, PredMdBaseEventHitTypedDict
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 PredMdBaseEventSearchResultType(str, Enum):
14
+ BASE_EVENTS = "base-events"
15
+
16
+
17
+ class PredMdBaseEventSearchResultTypedDict(TypedDict):
18
+ r"""One page of base events. found, page and perPage count base events."""
19
+
20
+ found: int
21
+ r"""Every match, not just this page."""
22
+ hits: List[PredMdBaseEventHitTypedDict]
23
+ page: int
24
+ per_page: int
25
+ type: PredMdBaseEventSearchResultType
26
+
27
+
28
+ class PredMdBaseEventSearchResult(BaseModel):
29
+ r"""One page of base events. found, page and perPage count base events."""
30
+
31
+ found: int
32
+ r"""Every match, not just this page."""
33
+
34
+ hits: List[PredMdBaseEventHit]
35
+
36
+ page: int
37
+
38
+ per_page: Annotated[int, pydantic.Field(alias="perPage")]
39
+
40
+ type: PredMdBaseEventSearchResultType
41
+
42
+
43
+ try:
44
+ PredMdBaseEventSearchResult.model_rebuild()
45
+ except NameError:
46
+ pass
@@ -0,0 +1,32 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 6645bbef736c
3
+
4
+ from __future__ import annotations
5
+ from .predmdbaseevent import PredMdBaseEvent, PredMdBaseEventTypedDict
6
+ from .predmdeventwithcontracts import (
7
+ PredMdEventWithContracts,
8
+ PredMdEventWithContractsTypedDict,
9
+ )
10
+ from finance_dev.types import BaseModel
11
+ import pydantic
12
+ from typing import List
13
+ from typing_extensions import Annotated, TypedDict
14
+
15
+
16
+ class PredMdBaseEventWithEventsTypedDict(TypedDict):
17
+ base_event: PredMdBaseEventTypedDict
18
+ r"""Top-level 4castex base event (e.g. UNR, HORC)."""
19
+ events: List[PredMdEventWithContractsTypedDict]
20
+
21
+
22
+ class PredMdBaseEventWithEvents(BaseModel):
23
+ base_event: Annotated[PredMdBaseEvent, pydantic.Field(alias="baseEvent")]
24
+ r"""Top-level 4castex base event (e.g. UNR, HORC)."""
25
+
26
+ events: List[PredMdEventWithContracts]
27
+
28
+
29
+ try:
30
+ PredMdBaseEventWithEvents.model_rebuild()
31
+ except NameError:
32
+ pass
@@ -0,0 +1,16 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 5359e4af5704
3
+
4
+ from __future__ import annotations
5
+ from .predmdhistoryrequest import PredMdHistoryRequest, PredMdHistoryRequestTypedDict
6
+ from finance_dev.types import BaseModel
7
+ from typing import List
8
+ from typing_extensions import TypedDict
9
+
10
+
11
+ class PredMdBatchHistoryRequestTypedDict(TypedDict):
12
+ queries: List[PredMdHistoryRequestTypedDict]
13
+
14
+
15
+ class PredMdBatchHistoryRequest(BaseModel):
16
+ queries: List[PredMdHistoryRequest]
@@ -0,0 +1,16 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: c186400b2c86
3
+
4
+ from __future__ import annotations
5
+ from .predmdhistoryresponse import PredMdHistoryResponse, PredMdHistoryResponseTypedDict
6
+ from finance_dev.types import BaseModel
7
+ from typing import List
8
+ from typing_extensions import TypedDict
9
+
10
+
11
+ class PredMdBatchHistoryResponseTypedDict(TypedDict):
12
+ results: List[PredMdHistoryResponseTypedDict]
13
+
14
+
15
+ class PredMdBatchHistoryResponse(BaseModel):
16
+ results: List[PredMdHistoryResponse]
@@ -0,0 +1,48 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: ec689d15009d
3
+
4
+ from __future__ import annotations
5
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
6
+ from pydantic import model_serializer
7
+ from typing import List, Optional
8
+ from typing_extensions import NotRequired, TypedDict
9
+
10
+
11
+ class PredMdCategoryTypedDict(TypedDict):
12
+ r"""One node of the category tree."""
13
+
14
+ name: str
15
+ r"""This level's name, for display."""
16
+ path: str
17
+ r"""Every level from the top down to this one, joined by \" > \". It identifies the category and is what search takes as category."""
18
+ children: NotRequired[List[PredMdCategoryTypedDict]]
19
+ r"""The categories one level down, ordered by name. Absent on a leaf."""
20
+
21
+
22
+ class PredMdCategory(BaseModel):
23
+ r"""One node of the category tree."""
24
+
25
+ name: str
26
+ r"""This level's name, for display."""
27
+
28
+ path: str
29
+ r"""Every level from the top down to this one, joined by \" > \". It identifies the category and is what search takes as category."""
30
+
31
+ children: Optional[List[PredMdCategory]] = None
32
+ r"""The categories one level down, ordered by name. Absent on a leaf."""
33
+
34
+ @model_serializer(mode="wrap")
35
+ def serialize_model(self, handler):
36
+ optional_fields = set(["children"])
37
+ serialized = handler(self)
38
+ m = {}
39
+
40
+ for n, f in type(self).model_fields.items():
41
+ k = f.alias or n
42
+ val = serialized.get(k, serialized.get(n))
43
+
44
+ if val != UNSET_SENTINEL:
45
+ if val is not None or k not in optional_fields:
46
+ m[k] = val
47
+
48
+ return m
@@ -0,0 +1,177 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 669328dd6fe7
3
+
4
+ from __future__ import annotations
5
+ from datetime import datetime
6
+ from decimal import Decimal
7
+ from finance_dev.types import (
8
+ BaseModel,
9
+ Nullable,
10
+ OptionalNullable,
11
+ UNSET,
12
+ UNSET_SENTINEL,
13
+ )
14
+ from finance_dev.utils import serialize_decimal, validate_decimal
15
+ import pydantic
16
+ from pydantic import model_serializer
17
+ from pydantic.functional_serializers import PlainSerializer
18
+ from pydantic.functional_validators import BeforeValidator
19
+ from typing import Any, List, Optional
20
+ from typing_extensions import Annotated, NotRequired, TypedDict
21
+
22
+
23
+ class PredMdContractTypedDict(TypedDict):
24
+ r"""A single tradable event contract at a specific strike."""
25
+
26
+ base_event_id: str
27
+ event_id: str
28
+ last_synced_at: datetime
29
+ non_tradable: bool
30
+ state: str
31
+ symbol: str
32
+ symbol_sub_types: List[str]
33
+ tick_size: Decimal
34
+ r"""Exact decimal, serialized as a string so no client parses it through a float."""
35
+ tradable: bool
36
+ base_currency: NotRequired[str]
37
+ description: NotRequired[str]
38
+ evaluation_type: NotRequired[str]
39
+ expiration_date: NotRequired[Nullable[datetime]]
40
+ last_trade_date: NotRequired[Nullable[datetime]]
41
+ min_trade_qty: NotRequired[str]
42
+ multiplier: NotRequired[int]
43
+ price_limit: NotRequired[Any]
44
+ r"""Venue JSON payload (passthrough)."""
45
+ price_scale: NotRequired[str]
46
+ question: NotRequired[str]
47
+ start_date: NotRequired[Nullable[datetime]]
48
+ strike_unit: NotRequired[str]
49
+ strike_value: NotRequired[str]
50
+ termination_date: NotRequired[Nullable[datetime]]
51
+ trading_schedule: NotRequired[Any]
52
+ r"""Venue JSON payload (passthrough)."""
53
+
54
+
55
+ class PredMdContract(BaseModel):
56
+ r"""A single tradable event contract at a specific strike."""
57
+
58
+ base_event_id: Annotated[str, pydantic.Field(alias="baseEventId")]
59
+
60
+ event_id: Annotated[str, pydantic.Field(alias="eventId")]
61
+
62
+ last_synced_at: Annotated[datetime, pydantic.Field(alias="lastSyncedAt")]
63
+
64
+ non_tradable: Annotated[bool, pydantic.Field(alias="nonTradable")]
65
+
66
+ state: str
67
+
68
+ symbol: str
69
+
70
+ symbol_sub_types: Annotated[List[str], pydantic.Field(alias="symbolSubTypes")]
71
+
72
+ tick_size: Annotated[
73
+ Annotated[
74
+ Decimal,
75
+ BeforeValidator(validate_decimal),
76
+ PlainSerializer(serialize_decimal(True)),
77
+ ],
78
+ pydantic.Field(alias="tickSize"),
79
+ ]
80
+ r"""Exact decimal, serialized as a string so no client parses it through a float."""
81
+
82
+ tradable: bool
83
+
84
+ base_currency: Annotated[Optional[str], pydantic.Field(alias="baseCurrency")] = None
85
+
86
+ description: Optional[str] = None
87
+
88
+ evaluation_type: Annotated[
89
+ Optional[str], pydantic.Field(alias="evaluationType")
90
+ ] = None
91
+
92
+ expiration_date: Annotated[
93
+ OptionalNullable[datetime], pydantic.Field(alias="expirationDate")
94
+ ] = UNSET
95
+
96
+ last_trade_date: Annotated[
97
+ OptionalNullable[datetime], pydantic.Field(alias="lastTradeDate")
98
+ ] = UNSET
99
+
100
+ min_trade_qty: Annotated[Optional[str], pydantic.Field(alias="minTradeQty")] = None
101
+
102
+ multiplier: Optional[int] = None
103
+
104
+ price_limit: Annotated[Optional[Any], pydantic.Field(alias="priceLimit")] = None
105
+ r"""Venue JSON payload (passthrough)."""
106
+
107
+ price_scale: Annotated[Optional[str], pydantic.Field(alias="priceScale")] = None
108
+
109
+ question: Optional[str] = None
110
+
111
+ start_date: Annotated[
112
+ OptionalNullable[datetime], pydantic.Field(alias="startDate")
113
+ ] = UNSET
114
+
115
+ strike_unit: Annotated[Optional[str], pydantic.Field(alias="strikeUnit")] = None
116
+
117
+ strike_value: Annotated[Optional[str], pydantic.Field(alias="strikeValue")] = None
118
+
119
+ termination_date: Annotated[
120
+ OptionalNullable[datetime], pydantic.Field(alias="terminationDate")
121
+ ] = UNSET
122
+
123
+ trading_schedule: Annotated[
124
+ Optional[Any], pydantic.Field(alias="tradingSchedule")
125
+ ] = None
126
+ r"""Venue JSON payload (passthrough)."""
127
+
128
+ @model_serializer(mode="wrap")
129
+ def serialize_model(self, handler):
130
+ optional_fields = set(
131
+ [
132
+ "baseCurrency",
133
+ "description",
134
+ "evaluationType",
135
+ "expirationDate",
136
+ "lastTradeDate",
137
+ "minTradeQty",
138
+ "multiplier",
139
+ "priceLimit",
140
+ "priceScale",
141
+ "question",
142
+ "startDate",
143
+ "strikeUnit",
144
+ "strikeValue",
145
+ "terminationDate",
146
+ "tradingSchedule",
147
+ ]
148
+ )
149
+ nullable_fields = set(
150
+ ["expirationDate", "lastTradeDate", "startDate", "terminationDate"]
151
+ )
152
+ serialized = handler(self)
153
+ m = {}
154
+
155
+ for n, f in type(self).model_fields.items():
156
+ k = f.alias or n
157
+ val = serialized.get(k, serialized.get(n))
158
+ is_nullable_and_explicitly_set = (
159
+ k in nullable_fields
160
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
161
+ )
162
+
163
+ if val != UNSET_SENTINEL:
164
+ if (
165
+ val is not None
166
+ or k not in optional_fields
167
+ or is_nullable_and_explicitly_set
168
+ ):
169
+ m[k] = val
170
+
171
+ return m
172
+
173
+
174
+ try:
175
+ PredMdContract.model_rebuild()
176
+ except NameError:
177
+ pass
@@ -0,0 +1,157 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 265a4adb5a1e
3
+
4
+ from __future__ import annotations
5
+ from datetime import datetime
6
+ from decimal import Decimal
7
+ from finance_dev.types import (
8
+ BaseModel,
9
+ Nullable,
10
+ OptionalNullable,
11
+ UNSET,
12
+ UNSET_SENTINEL,
13
+ )
14
+ from finance_dev.utils import serialize_decimal, validate_decimal
15
+ import pydantic
16
+ from pydantic import model_serializer
17
+ from pydantic.functional_serializers import PlainSerializer
18
+ from pydantic.functional_validators import BeforeValidator
19
+ from typing import List, Optional
20
+ from typing_extensions import Annotated, NotRequired, TypedDict
21
+
22
+
23
+ class PredMdContractHitTypedDict(TypedDict):
24
+ r"""One matching contract, with its event's and base event's text flattened in. The index trails the catalogue by seconds; read the contract through /events/{eventId}/contracts when it must be current."""
25
+
26
+ base_event_id: str
27
+ event_id: str
28
+ state: str
29
+ symbol: str
30
+ symbol_sub_types: List[str]
31
+ tick_size: Decimal
32
+ r"""Exact decimal, serialized as a string so no client parses it through a float."""
33
+ tradable: bool
34
+ evaluation_type: NotRequired[str]
35
+ event_display_name: NotRequired[str]
36
+ event_question: NotRequired[str]
37
+ expiration_date: NotRequired[Nullable[datetime]]
38
+ r"""Calendar date, at midnight UTC."""
39
+ last_trade_date: NotRequired[Nullable[datetime]]
40
+ r"""Calendar date, at midnight UTC."""
41
+ question: NotRequired[str]
42
+ start_date: NotRequired[Nullable[datetime]]
43
+ r"""Calendar date, at midnight UTC."""
44
+ strike_value: NotRequired[str]
45
+ time_specifier: NotRequired[str]
46
+ r"""Published precision: YYYY, YYYY.MM or YYYY.MM.DD."""
47
+ underlying_spec: NotRequired[str]
48
+
49
+
50
+ class PredMdContractHit(BaseModel):
51
+ r"""One matching contract, with its event's and base event's text flattened in. The index trails the catalogue by seconds; read the contract through /events/{eventId}/contracts when it must be current."""
52
+
53
+ base_event_id: Annotated[str, pydantic.Field(alias="baseEventId")]
54
+
55
+ event_id: Annotated[str, pydantic.Field(alias="eventId")]
56
+
57
+ state: str
58
+
59
+ symbol: str
60
+
61
+ symbol_sub_types: Annotated[List[str], pydantic.Field(alias="symbolSubTypes")]
62
+
63
+ tick_size: Annotated[
64
+ Annotated[
65
+ Decimal,
66
+ BeforeValidator(validate_decimal),
67
+ PlainSerializer(serialize_decimal(True)),
68
+ ],
69
+ pydantic.Field(alias="tickSize"),
70
+ ]
71
+ r"""Exact decimal, serialized as a string so no client parses it through a float."""
72
+
73
+ tradable: bool
74
+
75
+ evaluation_type: Annotated[
76
+ Optional[str], pydantic.Field(alias="evaluationType")
77
+ ] = None
78
+
79
+ event_display_name: Annotated[
80
+ Optional[str], pydantic.Field(alias="eventDisplayName")
81
+ ] = None
82
+
83
+ event_question: Annotated[Optional[str], pydantic.Field(alias="eventQuestion")] = (
84
+ None
85
+ )
86
+
87
+ expiration_date: Annotated[
88
+ OptionalNullable[datetime], pydantic.Field(alias="expirationDate")
89
+ ] = UNSET
90
+ r"""Calendar date, at midnight UTC."""
91
+
92
+ last_trade_date: Annotated[
93
+ OptionalNullable[datetime], pydantic.Field(alias="lastTradeDate")
94
+ ] = UNSET
95
+ r"""Calendar date, at midnight UTC."""
96
+
97
+ question: Optional[str] = None
98
+
99
+ start_date: Annotated[
100
+ OptionalNullable[datetime], pydantic.Field(alias="startDate")
101
+ ] = UNSET
102
+ r"""Calendar date, at midnight UTC."""
103
+
104
+ strike_value: Annotated[Optional[str], pydantic.Field(alias="strikeValue")] = None
105
+
106
+ time_specifier: Annotated[Optional[str], pydantic.Field(alias="timeSpecifier")] = (
107
+ None
108
+ )
109
+ r"""Published precision: YYYY, YYYY.MM or YYYY.MM.DD."""
110
+
111
+ underlying_spec: Annotated[
112
+ Optional[str], pydantic.Field(alias="underlyingSpec")
113
+ ] = None
114
+
115
+ @model_serializer(mode="wrap")
116
+ def serialize_model(self, handler):
117
+ optional_fields = set(
118
+ [
119
+ "evaluationType",
120
+ "eventDisplayName",
121
+ "eventQuestion",
122
+ "expirationDate",
123
+ "lastTradeDate",
124
+ "question",
125
+ "startDate",
126
+ "strikeValue",
127
+ "timeSpecifier",
128
+ "underlyingSpec",
129
+ ]
130
+ )
131
+ nullable_fields = set(["expirationDate", "lastTradeDate", "startDate"])
132
+ serialized = handler(self)
133
+ m = {}
134
+
135
+ for n, f in type(self).model_fields.items():
136
+ k = f.alias or n
137
+ val = serialized.get(k, serialized.get(n))
138
+ is_nullable_and_explicitly_set = (
139
+ k in nullable_fields
140
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
141
+ )
142
+
143
+ if val != UNSET_SENTINEL:
144
+ if (
145
+ val is not None
146
+ or k not in optional_fields
147
+ or is_nullable_and_explicitly_set
148
+ ):
149
+ m[k] = val
150
+
151
+ return m
152
+
153
+
154
+ try:
155
+ PredMdContractHit.model_rebuild()
156
+ except NameError:
157
+ pass
@@ -0,0 +1,46 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 0e62d6e75865
3
+
4
+ from __future__ import annotations
5
+ from .predmdcontracthit import PredMdContractHit, PredMdContractHitTypedDict
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 PredMdContractSearchResultType(str, Enum):
14
+ CONTRACTS = "contracts"
15
+
16
+
17
+ class PredMdContractSearchResultTypedDict(TypedDict):
18
+ r"""One page of contracts."""
19
+
20
+ found: int
21
+ r"""Every match, not just this page."""
22
+ hits: List[PredMdContractHitTypedDict]
23
+ page: int
24
+ per_page: int
25
+ type: PredMdContractSearchResultType
26
+
27
+
28
+ class PredMdContractSearchResult(BaseModel):
29
+ r"""One page of contracts."""
30
+
31
+ found: int
32
+ r"""Every match, not just this page."""
33
+
34
+ hits: List[PredMdContractHit]
35
+
36
+ page: int
37
+
38
+ per_page: Annotated[int, pydantic.Field(alias="perPage")]
39
+
40
+ type: PredMdContractSearchResultType
41
+
42
+
43
+ try:
44
+ PredMdContractSearchResult.model_rebuild()
45
+ except NameError:
46
+ pass