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,116 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: ad69c74f5867
3
+
4
+ from __future__ import annotations
5
+ from finance_dev.types import (
6
+ BaseModel,
7
+ Nullable,
8
+ OptionalNullable,
9
+ UNSET,
10
+ UNSET_SENTINEL,
11
+ )
12
+ import pydantic
13
+ from pydantic import model_serializer
14
+ from typing import Optional
15
+ from typing_extensions import Annotated, NotRequired, TypedDict
16
+
17
+
18
+ class OptionSnapshotLastQuoteTypedDict(TypedDict):
19
+ r"""Latest NBBO quote when included (`OptionSnapshotLastQuoteDTO`)."""
20
+
21
+ ask: NotRequired[float]
22
+ r"""Ask price"""
23
+ ask_exchange: NotRequired[Nullable[int]]
24
+ r"""Numeric identifier of the exchange quoting the ask, as supplied by the market data provider"""
25
+ ask_size: NotRequired[float]
26
+ r"""Size at the ask price"""
27
+ bid: NotRequired[float]
28
+ r"""Bid price"""
29
+ bid_exchange: NotRequired[Nullable[int]]
30
+ r"""Numeric identifier of the exchange quoting the bid, as supplied by the market data provider"""
31
+ bid_size: NotRequired[float]
32
+ r"""Size at the bid price"""
33
+ last_updated: NotRequired[int]
34
+ r"""Timestamp of the last quote update, as supplied by the market data provider"""
35
+ midpoint: NotRequired[float]
36
+ r"""Midpoint between the bid and ask prices"""
37
+ timeframe: NotRequired[str]
38
+ r"""Data timeframe of the quote, as supplied by the market data provider"""
39
+
40
+
41
+ class OptionSnapshotLastQuote(BaseModel):
42
+ r"""Latest NBBO quote when included (`OptionSnapshotLastQuoteDTO`)."""
43
+
44
+ ask: Optional[float] = None
45
+ r"""Ask price"""
46
+
47
+ ask_exchange: Annotated[
48
+ OptionalNullable[int], pydantic.Field(alias="askExchange")
49
+ ] = UNSET
50
+ r"""Numeric identifier of the exchange quoting the ask, as supplied by the market data provider"""
51
+
52
+ ask_size: Annotated[Optional[float], pydantic.Field(alias="askSize")] = None
53
+ r"""Size at the ask price"""
54
+
55
+ bid: Optional[float] = None
56
+ r"""Bid price"""
57
+
58
+ bid_exchange: Annotated[
59
+ OptionalNullable[int], pydantic.Field(alias="bidExchange")
60
+ ] = UNSET
61
+ r"""Numeric identifier of the exchange quoting the bid, as supplied by the market data provider"""
62
+
63
+ bid_size: Annotated[Optional[float], pydantic.Field(alias="bidSize")] = None
64
+ r"""Size at the bid price"""
65
+
66
+ last_updated: Annotated[Optional[int], pydantic.Field(alias="lastUpdated")] = None
67
+ r"""Timestamp of the last quote update, as supplied by the market data provider"""
68
+
69
+ midpoint: Optional[float] = None
70
+ r"""Midpoint between the bid and ask prices"""
71
+
72
+ timeframe: Optional[str] = None
73
+ r"""Data timeframe of the quote, as supplied by the market data provider"""
74
+
75
+ @model_serializer(mode="wrap")
76
+ def serialize_model(self, handler):
77
+ optional_fields = set(
78
+ [
79
+ "ask",
80
+ "askExchange",
81
+ "askSize",
82
+ "bid",
83
+ "bidExchange",
84
+ "bidSize",
85
+ "lastUpdated",
86
+ "midpoint",
87
+ "timeframe",
88
+ ]
89
+ )
90
+ nullable_fields = set(["askExchange", "bidExchange"])
91
+ serialized = handler(self)
92
+ m = {}
93
+
94
+ for n, f in type(self).model_fields.items():
95
+ k = f.alias or n
96
+ val = serialized.get(k, serialized.get(n))
97
+ is_nullable_and_explicitly_set = (
98
+ k in nullable_fields
99
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
100
+ )
101
+
102
+ if val != UNSET_SENTINEL:
103
+ if (
104
+ val is not None
105
+ or k not in optional_fields
106
+ or is_nullable_and_explicitly_set
107
+ ):
108
+ m[k] = val
109
+
110
+ return m
111
+
112
+
113
+ try:
114
+ OptionSnapshotLastQuote.model_rebuild()
115
+ except NameError:
116
+ pass
@@ -0,0 +1,102 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 5e1c4e27b03c
3
+
4
+ from __future__ import annotations
5
+ from finance_dev.types import (
6
+ BaseModel,
7
+ Nullable,
8
+ OptionalNullable,
9
+ UNSET,
10
+ UNSET_SENTINEL,
11
+ )
12
+ import pydantic
13
+ from pydantic import model_serializer
14
+ from typing import List, Optional
15
+ from typing_extensions import Annotated, NotRequired, TypedDict
16
+
17
+
18
+ class OptionSnapshotLastTradeTypedDict(TypedDict):
19
+ r"""Latest trade when included (`OptionSnapshotLastTradeDTO`)."""
20
+
21
+ conditions: NotRequired[List[int]]
22
+ r"""Trade condition codes, as supplied by the market data provider"""
23
+ decimal_size: NotRequired[Nullable[str]]
24
+ r"""Trade size as a decimal string, when provided"""
25
+ exchange: NotRequired[int]
26
+ r"""Numeric exchange identifier supplied by the market data provider."""
27
+ price: NotRequired[float]
28
+ r"""Trade price"""
29
+ sip_timestamp: NotRequired[int]
30
+ r"""SIP timestamp of the trade, as supplied by the market data provider"""
31
+ size: NotRequired[float]
32
+ r"""Trade size"""
33
+ timeframe: NotRequired[str]
34
+ r"""Data timeframe of the trade, as supplied by the market data provider"""
35
+
36
+
37
+ class OptionSnapshotLastTrade(BaseModel):
38
+ r"""Latest trade when included (`OptionSnapshotLastTradeDTO`)."""
39
+
40
+ conditions: Optional[List[int]] = None
41
+ r"""Trade condition codes, as supplied by the market data provider"""
42
+
43
+ decimal_size: Annotated[
44
+ OptionalNullable[str], pydantic.Field(alias="decimalSize")
45
+ ] = UNSET
46
+ r"""Trade size as a decimal string, when provided"""
47
+
48
+ exchange: Optional[int] = None
49
+ r"""Numeric exchange identifier supplied by the market data provider."""
50
+
51
+ price: Optional[float] = None
52
+ r"""Trade price"""
53
+
54
+ sip_timestamp: Annotated[Optional[int], pydantic.Field(alias="sipTimestamp")] = None
55
+ r"""SIP timestamp of the trade, as supplied by the market data provider"""
56
+
57
+ size: Optional[float] = None
58
+ r"""Trade size"""
59
+
60
+ timeframe: Optional[str] = None
61
+ r"""Data timeframe of the trade, as supplied by the market data provider"""
62
+
63
+ @model_serializer(mode="wrap")
64
+ def serialize_model(self, handler):
65
+ optional_fields = set(
66
+ [
67
+ "conditions",
68
+ "decimalSize",
69
+ "exchange",
70
+ "price",
71
+ "sipTimestamp",
72
+ "size",
73
+ "timeframe",
74
+ ]
75
+ )
76
+ nullable_fields = set(["decimalSize"])
77
+ serialized = handler(self)
78
+ m = {}
79
+
80
+ for n, f in type(self).model_fields.items():
81
+ k = f.alias or n
82
+ val = serialized.get(k, serialized.get(n))
83
+ is_nullable_and_explicitly_set = (
84
+ k in nullable_fields
85
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
86
+ )
87
+
88
+ if val != UNSET_SENTINEL:
89
+ if (
90
+ val is not None
91
+ or k not in optional_fields
92
+ or is_nullable_and_explicitly_set
93
+ ):
94
+ m[k] = val
95
+
96
+ return m
97
+
98
+
99
+ try:
100
+ OptionSnapshotLastTrade.model_rebuild()
101
+ except NameError:
102
+ pass
@@ -0,0 +1,86 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: f783a0a350b0
3
+
4
+ from __future__ import annotations
5
+ from finance_dev.types import (
6
+ BaseModel,
7
+ Nullable,
8
+ OptionalNullable,
9
+ UNSET,
10
+ UNSET_SENTINEL,
11
+ )
12
+ import pydantic
13
+ from pydantic import model_serializer
14
+ from typing import Optional
15
+ from typing_extensions import Annotated, NotRequired, TypedDict
16
+
17
+
18
+ class OptionSnapshotUnderlyingTypedDict(TypedDict):
19
+ r"""Underlying equity snapshot (`OptionSnapshotUnderlyingDTO`)."""
20
+
21
+ change_to_break_even: NotRequired[Nullable[float]]
22
+ r"""Change in the underlying price needed for the contract to reach break-even"""
23
+ last_updated: NotRequired[Nullable[int]]
24
+ r"""Timestamp of the last update to the underlying price, as supplied by the market data provider"""
25
+ price: NotRequired[Nullable[float]]
26
+ r"""Current price of the underlying asset"""
27
+ ticker: NotRequired[str]
28
+ r"""Ticker symbol of the underlying asset"""
29
+ timeframe: NotRequired[str]
30
+ r"""Data timeframe of the underlying price, as supplied by the market data provider"""
31
+
32
+
33
+ class OptionSnapshotUnderlying(BaseModel):
34
+ r"""Underlying equity snapshot (`OptionSnapshotUnderlyingDTO`)."""
35
+
36
+ change_to_break_even: Annotated[
37
+ OptionalNullable[float], pydantic.Field(alias="changeToBreakEven")
38
+ ] = UNSET
39
+ r"""Change in the underlying price needed for the contract to reach break-even"""
40
+
41
+ last_updated: Annotated[
42
+ OptionalNullable[int], pydantic.Field(alias="lastUpdated")
43
+ ] = UNSET
44
+ r"""Timestamp of the last update to the underlying price, as supplied by the market data provider"""
45
+
46
+ price: OptionalNullable[float] = UNSET
47
+ r"""Current price of the underlying asset"""
48
+
49
+ ticker: Optional[str] = None
50
+ r"""Ticker symbol of the underlying asset"""
51
+
52
+ timeframe: Optional[str] = None
53
+ r"""Data timeframe of the underlying price, as supplied by the market data provider"""
54
+
55
+ @model_serializer(mode="wrap")
56
+ def serialize_model(self, handler):
57
+ optional_fields = set(
58
+ ["changeToBreakEven", "lastUpdated", "price", "ticker", "timeframe"]
59
+ )
60
+ nullable_fields = set(["changeToBreakEven", "lastUpdated", "price"])
61
+ serialized = handler(self)
62
+ m = {}
63
+
64
+ for n, f in type(self).model_fields.items():
65
+ k = f.alias or n
66
+ val = serialized.get(k, serialized.get(n))
67
+ is_nullable_and_explicitly_set = (
68
+ k in nullable_fields
69
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
70
+ )
71
+
72
+ if val != UNSET_SENTINEL:
73
+ if (
74
+ val is not None
75
+ or k not in optional_fields
76
+ or is_nullable_and_explicitly_set
77
+ ):
78
+ m[k] = val
79
+
80
+ return m
81
+
82
+
83
+ try:
84
+ OptionSnapshotUnderlying.model_rebuild()
85
+ except NameError:
86
+ pass
@@ -0,0 +1,151 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 4b8072ae6866
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
+ import pydantic
9
+ from pydantic import field_serializer, model_serializer
10
+ from typing import Optional
11
+ from typing_extensions import Annotated, NotRequired, TypedDict
12
+
13
+
14
+ class OptionsScreenerItemType(str, Enum, metaclass=utils.OpenEnumMeta):
15
+ r"""Option type returned by the API. `c` = Call; `P` = Put."""
16
+
17
+ C = "c"
18
+ P = "P"
19
+
20
+
21
+ class OptionsScreenerItemTypedDict(TypedDict):
22
+ r"""Option contract details returned by options top-volume and top-gainers endpoints."""
23
+
24
+ ask: NotRequired[float]
25
+ r"""Lowest current seller price for the option. Use it as the reference price when buying."""
26
+ bid: NotRequired[float]
27
+ r"""Highest current buyer price for the option. Use it as the reference price when selling."""
28
+ change: NotRequired[float]
29
+ r"""Price change from previous close"""
30
+ change_percent: NotRequired[float]
31
+ r"""Percentage change from previous close"""
32
+ expiry: NotRequired[str]
33
+ r"""Option expiration date. Use it to group contracts by expiry and show time remaining."""
34
+ implied_volatility: NotRequired[float]
35
+ r"""Market-implied volatility for the option. Use it to compare how expensive option premium is across contracts."""
36
+ last_price: NotRequired[float]
37
+ r"""Most recent traded option price. Use bid and ask when estimating immediate execution cost."""
38
+ logo_url: NotRequired[str]
39
+ r"""URL to the underlying company or ETF logo"""
40
+ open_interest: NotRequired[int]
41
+ r"""Number of outstanding contracts. Use it to estimate option liquidity beyond today's trading volume."""
42
+ strike: NotRequired[float]
43
+ r"""Option strike price. Use it to explain the price level where the option can be exercised."""
44
+ symbol: NotRequired[str]
45
+ r"""Option contract symbol. Use this exact value when requesting option quotes, snapshots, or trades."""
46
+ type: NotRequired[OptionsScreenerItemType]
47
+ r"""Option type returned by the API. `c` = Call; `P` = Put."""
48
+ underlying_symbol: NotRequired[str]
49
+ r"""Underlying stock or ETF symbol"""
50
+ volume: NotRequired[int]
51
+ r"""Contracts traded during the current session. Use it to identify active option contracts."""
52
+
53
+
54
+ class OptionsScreenerItem(BaseModel):
55
+ r"""Option contract details returned by options top-volume and top-gainers endpoints."""
56
+
57
+ ask: Optional[float] = None
58
+ r"""Lowest current seller price for the option. Use it as the reference price when buying."""
59
+
60
+ bid: Optional[float] = None
61
+ r"""Highest current buyer price for the option. Use it as the reference price when selling."""
62
+
63
+ change: Optional[float] = None
64
+ r"""Price change from previous close"""
65
+
66
+ change_percent: Annotated[
67
+ Optional[float], pydantic.Field(alias="changePercent")
68
+ ] = None
69
+ r"""Percentage change from previous close"""
70
+
71
+ expiry: Optional[str] = None
72
+ r"""Option expiration date. Use it to group contracts by expiry and show time remaining."""
73
+
74
+ implied_volatility: Annotated[
75
+ Optional[float], pydantic.Field(alias="impliedVolatility")
76
+ ] = None
77
+ r"""Market-implied volatility for the option. Use it to compare how expensive option premium is across contracts."""
78
+
79
+ last_price: Annotated[Optional[float], pydantic.Field(alias="lastPrice")] = None
80
+ r"""Most recent traded option price. Use bid and ask when estimating immediate execution cost."""
81
+
82
+ logo_url: Annotated[Optional[str], pydantic.Field(alias="logoUrl")] = None
83
+ r"""URL to the underlying company or ETF logo"""
84
+
85
+ open_interest: Annotated[Optional[int], pydantic.Field(alias="openInterest")] = None
86
+ r"""Number of outstanding contracts. Use it to estimate option liquidity beyond today's trading volume."""
87
+
88
+ strike: Optional[float] = None
89
+ r"""Option strike price. Use it to explain the price level where the option can be exercised."""
90
+
91
+ symbol: Optional[str] = None
92
+ r"""Option contract symbol. Use this exact value when requesting option quotes, snapshots, or trades."""
93
+
94
+ type: Optional[OptionsScreenerItemType] = None
95
+ r"""Option type returned by the API. `c` = Call; `P` = Put."""
96
+
97
+ underlying_symbol: Annotated[
98
+ Optional[str], pydantic.Field(alias="underlyingSymbol")
99
+ ] = None
100
+ r"""Underlying stock or ETF symbol"""
101
+
102
+ volume: Optional[int] = None
103
+ r"""Contracts traded during the current session. Use it to identify active option contracts."""
104
+
105
+ @field_serializer("type")
106
+ def serialize_type(self, value):
107
+ if isinstance(value, str):
108
+ try:
109
+ return models.OptionsScreenerItemType(value)
110
+ except ValueError:
111
+ return value
112
+ return value
113
+
114
+ @model_serializer(mode="wrap")
115
+ def serialize_model(self, handler):
116
+ optional_fields = set(
117
+ [
118
+ "ask",
119
+ "bid",
120
+ "change",
121
+ "changePercent",
122
+ "expiry",
123
+ "impliedVolatility",
124
+ "lastPrice",
125
+ "logoUrl",
126
+ "openInterest",
127
+ "strike",
128
+ "symbol",
129
+ "type",
130
+ "underlyingSymbol",
131
+ "volume",
132
+ ]
133
+ )
134
+ serialized = handler(self)
135
+ m = {}
136
+
137
+ for n, f in type(self).model_fields.items():
138
+ k = f.alias or n
139
+ val = serialized.get(k, serialized.get(n))
140
+
141
+ if val != UNSET_SENTINEL:
142
+ if val is not None or k not in optional_fields:
143
+ m[k] = val
144
+
145
+ return m
146
+
147
+
148
+ try:
149
+ OptionsScreenerItem.model_rebuild()
150
+ except NameError:
151
+ pass
@@ -0,0 +1,62 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 25c84896715f
3
+
4
+ from __future__ import annotations
5
+ from .optionsunusualactivitytrade import (
6
+ OptionsUnusualActivityTrade,
7
+ OptionsUnusualActivityTradeTypedDict,
8
+ )
9
+ from finance_dev.types import (
10
+ BaseModel,
11
+ Nullable,
12
+ OptionalNullable,
13
+ UNSET,
14
+ UNSET_SENTINEL,
15
+ )
16
+ from pydantic import model_serializer
17
+ from typing import List, Optional
18
+ from typing_extensions import NotRequired, TypedDict
19
+
20
+
21
+ class OptionsUnusualActivityResponseTypedDict(TypedDict):
22
+ r"""Response for GET /v1/options/unusual_activity/{symbol}. Contains unusual activity trades and optional pagination pointer."""
23
+
24
+ next_page: NotRequired[Nullable[str]]
25
+ r"""Absolute link to the next page when more results are available."""
26
+ trades: NotRequired[List[OptionsUnusualActivityTradeTypedDict]]
27
+ r"""List of unusual options activity trades"""
28
+
29
+
30
+ class OptionsUnusualActivityResponse(BaseModel):
31
+ r"""Response for GET /v1/options/unusual_activity/{symbol}. Contains unusual activity trades and optional pagination pointer."""
32
+
33
+ next_page: OptionalNullable[str] = UNSET
34
+ r"""Absolute link to the next page when more results are available."""
35
+
36
+ trades: Optional[List[OptionsUnusualActivityTrade]] = None
37
+ r"""List of unusual options activity trades"""
38
+
39
+ @model_serializer(mode="wrap")
40
+ def serialize_model(self, handler):
41
+ optional_fields = set(["next_page", "trades"])
42
+ nullable_fields = set(["next_page"])
43
+ serialized = handler(self)
44
+ m = {}
45
+
46
+ for n, f in type(self).model_fields.items():
47
+ k = f.alias or n
48
+ val = serialized.get(k, serialized.get(n))
49
+ is_nullable_and_explicitly_set = (
50
+ k in nullable_fields
51
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
52
+ )
53
+
54
+ if val != UNSET_SENTINEL:
55
+ if (
56
+ val is not None
57
+ or k not in optional_fields
58
+ or is_nullable_and_explicitly_set
59
+ ):
60
+ m[k] = val
61
+
62
+ return m
@@ -0,0 +1,103 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 95038c369e18
3
+
4
+ from __future__ import annotations
5
+ from datetime import datetime
6
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
7
+ from pydantic import model_serializer
8
+ from typing import Optional
9
+ from typing_extensions import NotRequired, TypedDict
10
+
11
+
12
+ class OptionsUnusualActivityTradeTypedDict(TypedDict):
13
+ r"""Single options unusual activity trade"""
14
+
15
+ ask_at_execution: NotRequired[float]
16
+ r"""Ask price at execution"""
17
+ average_price: NotRequired[float]
18
+ r"""Average price per contract"""
19
+ bid_at_execution: NotRequired[float]
20
+ r"""Bid price at execution"""
21
+ contract: NotRequired[str]
22
+ r"""Option contract identifier"""
23
+ sentiment: NotRequired[str]
24
+ r"""Sentiment (e.g. bearish, bullish)"""
25
+ symbol: NotRequired[str]
26
+ r"""Underlying symbol (e.g. AAPL)"""
27
+ timestamp: NotRequired[datetime]
28
+ r"""Trade timestamp (ISO 8601)"""
29
+ total_size: NotRequired[float]
30
+ r"""Total contract size"""
31
+ total_value: NotRequired[float]
32
+ r"""Total dollar value of the trade"""
33
+ type: NotRequired[str]
34
+ r"""Provider-supplied unusual activity classification for the trade, such as block, sweep, or split."""
35
+ underlying_price_at_execution: NotRequired[float]
36
+ r"""Underlying price at execution"""
37
+
38
+
39
+ class OptionsUnusualActivityTrade(BaseModel):
40
+ r"""Single options unusual activity trade"""
41
+
42
+ ask_at_execution: Optional[float] = None
43
+ r"""Ask price at execution"""
44
+
45
+ average_price: Optional[float] = None
46
+ r"""Average price per contract"""
47
+
48
+ bid_at_execution: Optional[float] = None
49
+ r"""Bid price at execution"""
50
+
51
+ contract: Optional[str] = None
52
+ r"""Option contract identifier"""
53
+
54
+ sentiment: Optional[str] = None
55
+ r"""Sentiment (e.g. bearish, bullish)"""
56
+
57
+ symbol: Optional[str] = None
58
+ r"""Underlying symbol (e.g. AAPL)"""
59
+
60
+ timestamp: Optional[datetime] = None
61
+ r"""Trade timestamp (ISO 8601)"""
62
+
63
+ total_size: Optional[float] = None
64
+ r"""Total contract size"""
65
+
66
+ total_value: Optional[float] = None
67
+ r"""Total dollar value of the trade"""
68
+
69
+ type: Optional[str] = None
70
+ r"""Provider-supplied unusual activity classification for the trade, such as block, sweep, or split."""
71
+
72
+ underlying_price_at_execution: Optional[float] = None
73
+ r"""Underlying price at execution"""
74
+
75
+ @model_serializer(mode="wrap")
76
+ def serialize_model(self, handler):
77
+ optional_fields = set(
78
+ [
79
+ "ask_at_execution",
80
+ "average_price",
81
+ "bid_at_execution",
82
+ "contract",
83
+ "sentiment",
84
+ "symbol",
85
+ "timestamp",
86
+ "total_size",
87
+ "total_value",
88
+ "type",
89
+ "underlying_price_at_execution",
90
+ ]
91
+ )
92
+ serialized = handler(self)
93
+ m = {}
94
+
95
+ for n, f in type(self).model_fields.items():
96
+ k = f.alias or n
97
+ val = serialized.get(k, serialized.get(n))
98
+
99
+ if val != UNSET_SENTINEL:
100
+ if val is not None or k not in optional_fields:
101
+ m[k] = val
102
+
103
+ return m