finance_dev 0.9.0__tar.gz

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 (519) hide show
  1. finance_dev-0.9.0/PKG-INFO +913 -0
  2. finance_dev-0.9.0/README.md +900 -0
  3. finance_dev-0.9.0/pyproject.toml +57 -0
  4. finance_dev-0.9.0/setup.cfg +4 -0
  5. finance_dev-0.9.0/src/finance_dev/__init__.py +18 -0
  6. finance_dev-0.9.0/src/finance_dev/_hooks/__init__.py +7 -0
  7. finance_dev-0.9.0/src/finance_dev/_hooks/clientcredentials.py +319 -0
  8. finance_dev-0.9.0/src/finance_dev/_hooks/oauth2scopes.py +50 -0
  9. finance_dev-0.9.0/src/finance_dev/_hooks/registration.py +13 -0
  10. finance_dev-0.9.0/src/finance_dev/_hooks/sdkhooks.py +82 -0
  11. finance_dev-0.9.0/src/finance_dev/_hooks/types.py +125 -0
  12. finance_dev-0.9.0/src/finance_dev/_version.py +16 -0
  13. finance_dev-0.9.0/src/finance_dev/accounts.py +797 -0
  14. finance_dev-0.9.0/src/finance_dev/alternativedata.py +4830 -0
  15. finance_dev-0.9.0/src/finance_dev/analytics.py +3757 -0
  16. finance_dev-0.9.0/src/finance_dev/basesdk.py +393 -0
  17. finance_dev-0.9.0/src/finance_dev/calendar.py +1523 -0
  18. finance_dev-0.9.0/src/finance_dev/chart.py +1881 -0
  19. finance_dev-0.9.0/src/finance_dev/company.py +1105 -0
  20. finance_dev-0.9.0/src/finance_dev/corporateactions.py +1795 -0
  21. finance_dev-0.9.0/src/finance_dev/economy.py +1153 -0
  22. finance_dev-0.9.0/src/finance_dev/errors/__init__.py +94 -0
  23. finance_dev-0.9.0/src/finance_dev/errors/apierror.py +41 -0
  24. finance_dev-0.9.0/src/finance_dev/errors/authenticationerrorenvelope.py +43 -0
  25. finance_dev-0.9.0/src/finance_dev/errors/badrequest.py +34 -0
  26. finance_dev-0.9.0/src/finance_dev/errors/errorenvelope.py +42 -0
  27. finance_dev-0.9.0/src/finance_dev/errors/errorresponse.py +45 -0
  28. finance_dev-0.9.0/src/finance_dev/errors/financedevapierror.py +31 -0
  29. finance_dev-0.9.0/src/finance_dev/errors/forbidden.py +34 -0
  30. finance_dev-0.9.0/src/finance_dev/errors/internalservererror.py +35 -0
  31. finance_dev-0.9.0/src/finance_dev/errors/no_response_error.py +18 -0
  32. finance_dev-0.9.0/src/finance_dev/errors/notfound.py +34 -0
  33. finance_dev-0.9.0/src/finance_dev/errors/orderhistorybadrequest.py +35 -0
  34. finance_dev-0.9.0/src/finance_dev/errors/predorderserrorenvelope.py +42 -0
  35. finance_dev-0.9.0/src/finance_dev/errors/responsevalidationerror.py +28 -0
  36. finance_dev-0.9.0/src/finance_dev/errors/unauthorized.py +34 -0
  37. finance_dev-0.9.0/src/finance_dev/estimates.py +1906 -0
  38. finance_dev-0.9.0/src/finance_dev/etf.py +1108 -0
  39. finance_dev-0.9.0/src/finance_dev/filings.py +586 -0
  40. finance_dev-0.9.0/src/finance_dev/financials.py +4079 -0
  41. finance_dev-0.9.0/src/finance_dev/history.py +477 -0
  42. finance_dev-0.9.0/src/finance_dev/httpclient.py +126 -0
  43. finance_dev-0.9.0/src/finance_dev/indices.py +2308 -0
  44. finance_dev-0.9.0/src/finance_dev/logos.py +692 -0
  45. finance_dev-0.9.0/src/finance_dev/market.py +1825 -0
  46. finance_dev-0.9.0/src/finance_dev/markets.py +952 -0
  47. finance_dev-0.9.0/src/finance_dev/models/__init__.py +4568 -0
  48. finance_dev-0.9.0/src/finance_dev/models/accountbalancev2.py +340 -0
  49. finance_dev-0.9.0/src/finance_dev/models/accountitem.py +78 -0
  50. finance_dev-0.9.0/src/finance_dev/models/accountposition.py +147 -0
  51. finance_dev-0.9.0/src/finance_dev/models/aggregatetechnicalindicatorsresponse.py +192 -0
  52. finance_dev-0.9.0/src/finance_dev/models/analystinsightitem.py +161 -0
  53. finance_dev-0.9.0/src/finance_dev/models/analystinsightsresponse.py +39 -0
  54. finance_dev-0.9.0/src/finance_dev/models/apperror.py +123 -0
  55. finance_dev-0.9.0/src/finance_dev/models/authenticationerrordetail.py +58 -0
  56. finance_dev-0.9.0/src/finance_dev/models/bankbranchesresponse.py +96 -0
  57. finance_dev-0.9.0/src/finance_dev/models/basicfinancials.py +243 -0
  58. finance_dev-0.9.0/src/finance_dev/models/bullbearanalysisresponse.py +150 -0
  59. finance_dev-0.9.0/src/finance_dev/models/cancelorderop.py +40 -0
  60. finance_dev-0.9.0/src/finance_dev/models/cancelordrequest_union.py +287 -0
  61. finance_dev-0.9.0/src/finance_dev/models/cancelordresponse.py +115 -0
  62. finance_dev-0.9.0/src/finance_dev/models/cashflowstatement.py +290 -0
  63. finance_dev-0.9.0/src/finance_dev/models/cashflowstatementsresponse.py +61 -0
  64. finance_dev-0.9.0/src/finance_dev/models/chartbars.py +111 -0
  65. finance_dev-0.9.0/src/finance_dev/models/chartconfig.py +81 -0
  66. finance_dev-0.9.0/src/finance_dev/models/chartresolution.py +46 -0
  67. finance_dev-0.9.0/src/finance_dev/models/companyesgresponse.py +408 -0
  68. finance_dev-0.9.0/src/finance_dev/models/companyexecutive.py +70 -0
  69. finance_dev-0.9.0/src/finance_dev/models/companyexecutiveresponse.py +39 -0
  70. finance_dev-0.9.0/src/finance_dev/models/companypeersresponse.py +38 -0
  71. finance_dev-0.9.0/src/finance_dev/models/companypresentationresponse.py +96 -0
  72. finance_dev-0.9.0/src/finance_dev/models/companyprofile.py +255 -0
  73. finance_dev-0.9.0/src/finance_dev/models/conferencecallsresponse.py +169 -0
  74. finance_dev-0.9.0/src/finance_dev/models/congressionaltradingresponse.py +138 -0
  75. finance_dev-0.9.0/src/finance_dev/models/covid19uscasesresponse.py +79 -0
  76. finance_dev-0.9.0/src/finance_dev/models/createconfigwatchlistop.py +40 -0
  77. finance_dev-0.9.0/src/finance_dev/models/createwatchlistrequest.py +43 -0
  78. finance_dev-0.9.0/src/finance_dev/models/dailymarketsummaryresponse.py +73 -0
  79. finance_dev-0.9.0/src/finance_dev/models/deleteconfigwatchlistbyidop.py +53 -0
  80. finance_dev-0.9.0/src/finance_dev/models/dividenditem.py +125 -0
  81. finance_dev-0.9.0/src/finance_dev/models/dividendsresponse.py +61 -0
  82. finance_dev-0.9.0/src/finance_dev/models/earningrelease.py +291 -0
  83. finance_dev-0.9.0/src/finance_dev/models/earningscallliveresponse.py +103 -0
  84. finance_dev-0.9.0/src/finance_dev/models/earningsqualityscoreresponse.py +140 -0
  85. finance_dev-0.9.0/src/finance_dev/models/earningssurprisesresponse.py +125 -0
  86. finance_dev-0.9.0/src/finance_dev/models/ebitdaestimatesresponse.py +176 -0
  87. finance_dev-0.9.0/src/finance_dev/models/ebitestimatesresponse.py +176 -0
  88. finance_dev-0.9.0/src/finance_dev/models/economicscalendarevent.py +160 -0
  89. finance_dev-0.9.0/src/finance_dev/models/economicsindicator.py +87 -0
  90. finance_dev-0.9.0/src/finance_dev/models/epsestimatesresponse.py +176 -0
  91. finance_dev-0.9.0/src/finance_dev/models/equitydetailsdto.py +569 -0
  92. finance_dev-0.9.0/src/finance_dev/models/errorcode.py +48 -0
  93. finance_dev-0.9.0/src/finance_dev/models/etblistresponse.py +43 -0
  94. finance_dev-0.9.0/src/finance_dev/models/etbsearchrequest.py +21 -0
  95. finance_dev-0.9.0/src/finance_dev/models/etbsearchresponse.py +43 -0
  96. finance_dev-0.9.0/src/finance_dev/models/etfcountryallocationresponse.py +113 -0
  97. finance_dev-0.9.0/src/finance_dev/models/etfholdingsresponse.py +163 -0
  98. finance_dev-0.9.0/src/finance_dev/models/etfprofileresponse.py +234 -0
  99. finance_dev-0.9.0/src/finance_dev/models/etfsectorallocationresponse.py +113 -0
  100. finance_dev-0.9.0/src/finance_dev/models/exchangecode.py +90 -0
  101. finance_dev-0.9.0/src/finance_dev/models/fdaadvisorycommitteecalendarresponse.py +88 -0
  102. finance_dev-0.9.0/src/finance_dev/models/filingsimilarityrecord.py +115 -0
  103. finance_dev-0.9.0/src/finance_dev/models/filingssimilarityindexdatawrapper.py +52 -0
  104. finance_dev-0.9.0/src/finance_dev/models/filingssimilarityindexresponse.py +42 -0
  105. finance_dev-0.9.0/src/finance_dev/models/financialratiosresponse.py +252 -0
  106. finance_dev-0.9.0/src/finance_dev/models/financialsreporteddatawrapper.py +49 -0
  107. finance_dev-0.9.0/src/finance_dev/models/financialsreportedresponse.py +42 -0
  108. finance_dev-0.9.0/src/finance_dev/models/financialsrevenuebreakdowndatawrapper.py +49 -0
  109. finance_dev-0.9.0/src/finance_dev/models/financialsrevenuebreakdownresponse.py +42 -0
  110. finance_dev-0.9.0/src/finance_dev/models/financialsstatementsdatawrapper.py +44 -0
  111. finance_dev-0.9.0/src/finance_dev/models/financialsstatementsresponse.py +42 -0
  112. finance_dev-0.9.0/src/finance_dev/models/financialstatement.py +171 -0
  113. finance_dev-0.9.0/src/finance_dev/models/financialstatementtype.py +14 -0
  114. finance_dev-0.9.0/src/finance_dev/models/getaccountbalanceop.py +53 -0
  115. finance_dev-0.9.0/src/finance_dev/models/getaccountpositionsop.py +53 -0
  116. finance_dev-0.9.0/src/finance_dev/models/getaccountsresponse.py +22 -0
  117. finance_dev-0.9.0/src/finance_dev/models/getaggregatetechnicalindicatorsop.py +94 -0
  118. finance_dev-0.9.0/src/finance_dev/models/getanalystinsightsop.py +164 -0
  119. finance_dev-0.9.0/src/finance_dev/models/getbankbranchesop.py +53 -0
  120. finance_dev-0.9.0/src/finance_dev/models/getbaseeventop.py +87 -0
  121. finance_dev-0.9.0/src/finance_dev/models/getbullbearanalysisop.py +91 -0
  122. finance_dev-0.9.0/src/finance_dev/models/getcashflowstatementsop.py +564 -0
  123. finance_dev-0.9.0/src/finance_dev/models/getchartconfigop.py +40 -0
  124. finance_dev-0.9.0/src/finance_dev/models/getcharthistoryop.py +122 -0
  125. finance_dev-0.9.0/src/finance_dev/models/getcharttimeop.py +39 -0
  126. finance_dev-0.9.0/src/finance_dev/models/getcompanyesgop.py +53 -0
  127. finance_dev-0.9.0/src/finance_dev/models/getcompanyexecutivesop.py +56 -0
  128. finance_dev-0.9.0/src/finance_dev/models/getcompanymetricsop.py +68 -0
  129. finance_dev-0.9.0/src/finance_dev/models/getcompanypeersop.py +53 -0
  130. finance_dev-0.9.0/src/finance_dev/models/getcompanypresentationop.py +56 -0
  131. finance_dev-0.9.0/src/finance_dev/models/getcompanyprofileop.py +86 -0
  132. finance_dev-0.9.0/src/finance_dev/models/getconferencecallsop.py +111 -0
  133. finance_dev-0.9.0/src/finance_dev/models/getconfigwatchlistbyidop.py +53 -0
  134. finance_dev-0.9.0/src/finance_dev/models/getconfigwatchlistsop.py +40 -0
  135. finance_dev-0.9.0/src/finance_dev/models/getcongressionaltradingop.py +73 -0
  136. finance_dev-0.9.0/src/finance_dev/models/getcovid19uscasesop.py +43 -0
  137. finance_dev-0.9.0/src/finance_dev/models/getdailymarketsummaryop.py +92 -0
  138. finance_dev-0.9.0/src/finance_dev/models/getdividendsop.py +294 -0
  139. finance_dev-0.9.0/src/finance_dev/models/getearningscalendarop.py +87 -0
  140. finance_dev-0.9.0/src/finance_dev/models/getearningscallliveop.py +91 -0
  141. finance_dev-0.9.0/src/finance_dev/models/getearningsqualityscoreop.py +81 -0
  142. finance_dev-0.9.0/src/finance_dev/models/getearningssurprisesop.py +80 -0
  143. finance_dev-0.9.0/src/finance_dev/models/getebitdaestimatesop.py +91 -0
  144. finance_dev-0.9.0/src/finance_dev/models/getebitestimatesop.py +88 -0
  145. finance_dev-0.9.0/src/finance_dev/models/geteconomicscalendarop.py +92 -0
  146. finance_dev-0.9.0/src/finance_dev/models/geteconomicscalendarresponse.py +56 -0
  147. finance_dev-0.9.0/src/finance_dev/models/getepsestimatesop.py +88 -0
  148. finance_dev-0.9.0/src/finance_dev/models/getequitydetailsop.py +56 -0
  149. finance_dev-0.9.0/src/finance_dev/models/getequitydetailsresponse.py +45 -0
  150. finance_dev-0.9.0/src/finance_dev/models/getetblistop.py +40 -0
  151. finance_dev-0.9.0/src/finance_dev/models/getetfcountryallocationop.py +80 -0
  152. finance_dev-0.9.0/src/finance_dev/models/getetfholdingsop.py +96 -0
  153. finance_dev-0.9.0/src/finance_dev/models/getetfprofileop.py +77 -0
  154. finance_dev-0.9.0/src/finance_dev/models/getetfsectorallocationop.py +80 -0
  155. finance_dev-0.9.0/src/finance_dev/models/geteventcontractsop.py +87 -0
  156. finance_dev-0.9.0/src/finance_dev/models/getfdaadvisorycommitteecalendarop.py +47 -0
  157. finance_dev-0.9.0/src/finance_dev/models/getfilingssimilarityindexop.py +102 -0
  158. finance_dev-0.9.0/src/finance_dev/models/getfinancialratiosop.py +612 -0
  159. finance_dev-0.9.0/src/finance_dev/models/getfinancialstatementsop.py +117 -0
  160. finance_dev-0.9.0/src/finance_dev/models/getfundownershipop.py +77 -0
  161. finance_dev-0.9.0/src/finance_dev/models/gethistoricaldataop.py +61 -0
  162. finance_dev-0.9.0/src/finance_dev/models/gethistoricalesgop.py +53 -0
  163. finance_dev-0.9.0/src/finance_dev/models/gethistorybatchop.py +74 -0
  164. finance_dev-0.9.0/src/finance_dev/models/gethistoryop.py +123 -0
  165. finance_dev-0.9.0/src/finance_dev/models/getincomestatementsop.py +564 -0
  166. finance_dev-0.9.0/src/finance_dev/models/getindexbarop.py +140 -0
  167. finance_dev-0.9.0/src/finance_dev/models/getindexbarsop.py +149 -0
  168. finance_dev-0.9.0/src/finance_dev/models/getindexchartbarsop.py +178 -0
  169. finance_dev-0.9.0/src/finance_dev/models/getindexrealtimevaluesop.py +94 -0
  170. finance_dev-0.9.0/src/finance_dev/models/getinflationexpectationsop.py +157 -0
  171. finance_dev-0.9.0/src/finance_dev/models/getinflationop.py +154 -0
  172. finance_dev-0.9.0/src/finance_dev/models/getinsidertransactionsop.py +90 -0
  173. finance_dev-0.9.0/src/finance_dev/models/getinstitutionalownershipop.py +99 -0
  174. finance_dev-0.9.0/src/finance_dev/models/getinstitutionalportfolioop.py +75 -0
  175. finance_dev-0.9.0/src/finance_dev/models/getinvestmentthemeop.py +68 -0
  176. finance_dev-0.9.0/src/finance_dev/models/getipocalendarop.py +63 -0
  177. finance_dev-0.9.0/src/finance_dev/models/getlobbyingop.py +70 -0
  178. finance_dev-0.9.0/src/finance_dev/models/getmarketbreadthop.py +40 -0
  179. finance_dev-0.9.0/src/finance_dev/models/getmarketholidaysop.py +65 -0
  180. finance_dev-0.9.0/src/finance_dev/models/getmarketstatusop.py +65 -0
  181. finance_dev-0.9.0/src/finance_dev/models/getmergersandacquisitionsop.py +113 -0
  182. finance_dev-0.9.0/src/finance_dev/models/getnetinflowop.py +40 -0
  183. finance_dev-0.9.0/src/finance_dev/models/getnewsbyidop.py +73 -0
  184. finance_dev-0.9.0/src/finance_dev/models/getnewsop.py +98 -0
  185. finance_dev-0.9.0/src/finance_dev/models/getnewssentimentop.py +53 -0
  186. finance_dev-0.9.0/src/finance_dev/models/getoptionchainsnapshotop.py +244 -0
  187. finance_dev-0.9.0/src/finance_dev/models/getoptioncontractsnapshotop.py +69 -0
  188. finance_dev-0.9.0/src/finance_dev/models/getoptiondetailsop.py +56 -0
  189. finance_dev-0.9.0/src/finance_dev/models/getoptiondetailsresponse.py +45 -0
  190. finance_dev-0.9.0/src/finance_dev/models/getoptionlasttradeop.py +56 -0
  191. finance_dev-0.9.0/src/finance_dev/models/getoptionopencloseop.py +66 -0
  192. finance_dev-0.9.0/src/finance_dev/models/getoptionpreviousdayop.py +56 -0
  193. finance_dev-0.9.0/src/finance_dev/models/getoptionquotesop.py +177 -0
  194. finance_dev-0.9.0/src/finance_dev/models/getoptionsactivityop.py +111 -0
  195. finance_dev-0.9.0/src/finance_dev/models/getoptionsetfstopvolumeop.py +70 -0
  196. finance_dev-0.9.0/src/finance_dev/models/getoptionsstockstopgainersop.py +70 -0
  197. finance_dev-0.9.0/src/finance_dev/models/getoptionsstockstopvolumeop.py +70 -0
  198. finance_dev-0.9.0/src/finance_dev/models/getoptionsunusualactivityop.py +100 -0
  199. finance_dev-0.9.0/src/finance_dev/models/getoptiontradesop.py +177 -0
  200. finance_dev-0.9.0/src/finance_dev/models/getordersv2response.py +66 -0
  201. finance_dev-0.9.0/src/finance_dev/models/getownershipdataop.py +77 -0
  202. finance_dev-0.9.0/src/finance_dev/models/getpositionsresponse.py +39 -0
  203. finance_dev-0.9.0/src/finance_dev/models/getpredictionorderop.py +88 -0
  204. finance_dev-0.9.0/src/finance_dev/models/getpricetargetop.py +53 -0
  205. finance_dev-0.9.0/src/finance_dev/models/getquotesop.py +53 -0
  206. finance_dev-0.9.0/src/finance_dev/models/getratingsop.py +164 -0
  207. finance_dev-0.9.0/src/finance_dev/models/getratingsresponse.py +39 -0
  208. finance_dev-0.9.0/src/finance_dev/models/getreportedfinancialsop.py +127 -0
  209. finance_dev-0.9.0/src/finance_dev/models/getrevenuebreakdownop.py +85 -0
  210. finance_dev-0.9.0/src/finance_dev/models/getrevenueestimatesop.py +91 -0
  211. finance_dev-0.9.0/src/finance_dev/models/getsecfilingsop.py +113 -0
  212. finance_dev-0.9.0/src/finance_dev/models/getsectortickersop.py +124 -0
  213. finance_dev-0.9.0/src/finance_dev/models/getsectorwisechangeop.py +84 -0
  214. finance_dev-0.9.0/src/finance_dev/models/getshortinterestop.py +334 -0
  215. finance_dev-0.9.0/src/finance_dev/models/getshortvolumeop.py +333 -0
  216. finance_dev-0.9.0/src/finance_dev/models/getsocialsentimentop.py +90 -0
  217. finance_dev-0.9.0/src/finance_dev/models/getspinoffsop.py +112 -0
  218. finance_dev-0.9.0/src/finance_dev/models/getstockaggregatesop.py +174 -0
  219. finance_dev-0.9.0/src/finance_dev/models/getstocklastquoteop.py +56 -0
  220. finance_dev-0.9.0/src/finance_dev/models/getstocklasttradeop.py +56 -0
  221. finance_dev-0.9.0/src/finance_dev/models/getstockopencloseop.py +90 -0
  222. finance_dev-0.9.0/src/finance_dev/models/getstockpreviousdayop.py +80 -0
  223. finance_dev-0.9.0/src/finance_dev/models/getstockquotesop.py +177 -0
  224. finance_dev-0.9.0/src/finance_dev/models/getstocksnapshotsop.py +82 -0
  225. finance_dev-0.9.0/src/finance_dev/models/getstocksplitsop.py +243 -0
  226. finance_dev-0.9.0/src/finance_dev/models/getstocktradesop.py +177 -0
  227. finance_dev-0.9.0/src/finance_dev/models/getsupplychainop.py +53 -0
  228. finance_dev-0.9.0/src/finance_dev/models/getsupportresistancelevelsop.py +90 -0
  229. finance_dev-0.9.0/src/finance_dev/models/getsymbolinfoop.py +53 -0
  230. finance_dev-0.9.0/src/finance_dev/models/gettechnicalindicatorop.py +172 -0
  231. finance_dev-0.9.0/src/finance_dev/models/gettechnicalpatternsop.py +88 -0
  232. finance_dev-0.9.0/src/finance_dev/models/gettenderoffersop.py +112 -0
  233. finance_dev-0.9.0/src/finance_dev/models/gettickhistoryop.py +104 -0
  234. finance_dev-0.9.0/src/finance_dev/models/gettopgainersop.py +78 -0
  235. finance_dev-0.9.0/src/finance_dev/models/gettoplosersop.py +78 -0
  236. finance_dev-0.9.0/src/finance_dev/models/gettopmostactiveop.py +78 -0
  237. finance_dev-0.9.0/src/finance_dev/models/gettranscriptop.py +53 -0
  238. finance_dev-0.9.0/src/finance_dev/models/gettreasuryyieldsop.py +157 -0
  239. finance_dev-0.9.0/src/finance_dev/models/getunifiedsnapshotop.py +223 -0
  240. finance_dev-0.9.0/src/finance_dev/models/getupgradesdowngradesop.py +91 -0
  241. finance_dev-0.9.0/src/finance_dev/models/getusaspendingop.py +70 -0
  242. finance_dev-0.9.0/src/finance_dev/models/getuseraccountsop.py +40 -0
  243. finance_dev-0.9.0/src/finance_dev/models/getusptopatentsop.py +70 -0
  244. finance_dev-0.9.0/src/finance_dev/models/getvisaapplicationsop.py +73 -0
  245. finance_dev-0.9.0/src/finance_dev/models/historicalesgresponse.py +439 -0
  246. finance_dev-0.9.0/src/finance_dev/models/httpmetadata.py +24 -0
  247. finance_dev-0.9.0/src/finance_dev/models/incomestatement.py +296 -0
  248. finance_dev-0.9.0/src/finance_dev/models/incomestatementsresponse.py +61 -0
  249. finance_dev-0.9.0/src/finance_dev/models/indexbarresponse.py +194 -0
  250. finance_dev-0.9.0/src/finance_dev/models/indexbarsresponse.py +123 -0
  251. finance_dev-0.9.0/src/finance_dev/models/indexchartbarsresponse.py +213 -0
  252. finance_dev-0.9.0/src/finance_dev/models/indexgroupsresponse.py +78 -0
  253. finance_dev-0.9.0/src/finance_dev/models/indexlistresponse.py +95 -0
  254. finance_dev-0.9.0/src/finance_dev/models/indexsearchresponse.py +93 -0
  255. finance_dev-0.9.0/src/finance_dev/models/indicesbygroupresponse.py +93 -0
  256. finance_dev-0.9.0/src/finance_dev/models/indicesidentifiertype.py +28 -0
  257. finance_dev-0.9.0/src/finance_dev/models/indicesrealtimeindexinfo.py +67 -0
  258. finance_dev-0.9.0/src/finance_dev/models/indicesrealtimeindexvalue.py +157 -0
  259. finance_dev-0.9.0/src/finance_dev/models/indicesrealtimevaluesitem.py +80 -0
  260. finance_dev-0.9.0/src/finance_dev/models/indicesrealtimevaluesresponse.py +42 -0
  261. finance_dev-0.9.0/src/finance_dev/models/inflationexpectationsresponse.py +140 -0
  262. finance_dev-0.9.0/src/finance_dev/models/inflationresponse.py +132 -0
  263. finance_dev-0.9.0/src/finance_dev/models/insidertransaction.py +97 -0
  264. finance_dev-0.9.0/src/finance_dev/models/insidertransactionsresponse.py +39 -0
  265. finance_dev-0.9.0/src/finance_dev/models/institutionalholding.py +77 -0
  266. finance_dev-0.9.0/src/finance_dev/models/institutionalownershipresponse.py +39 -0
  267. finance_dev-0.9.0/src/finance_dev/models/institutionalportfolioresponse.py +39 -0
  268. finance_dev-0.9.0/src/finance_dev/models/investmentthemeid.py +35 -0
  269. finance_dev-0.9.0/src/finance_dev/models/investmentthemeresponse.py +80 -0
  270. finance_dev-0.9.0/src/finance_dev/models/ipocalendarresponse.py +39 -0
  271. finance_dev-0.9.0/src/finance_dev/models/ipoitem.py +93 -0
  272. finance_dev-0.9.0/src/finance_dev/models/listactiveordersop.py +87 -0
  273. finance_dev-0.9.0/src/finance_dev/models/listcategoriesop.py +79 -0
  274. finance_dev-0.9.0/src/finance_dev/models/listindexgroupsop.py +40 -0
  275. finance_dev-0.9.0/src/finance_dev/models/listindicesbygroupop.py +58 -0
  276. finance_dev-0.9.0/src/finance_dev/models/listindicesop.py +91 -0
  277. finance_dev-0.9.0/src/finance_dev/models/listoptioncontractsop.py +66 -0
  278. finance_dev-0.9.0/src/finance_dev/models/listoptionexpirydatesop.py +56 -0
  279. finance_dev-0.9.0/src/finance_dev/models/listorderhistoryop.py +139 -0
  280. finance_dev-0.9.0/src/finance_dev/models/listpredictionordersop.py +134 -0
  281. finance_dev-0.9.0/src/finance_dev/models/listtranscriptsop.py +53 -0
  282. finance_dev-0.9.0/src/finance_dev/models/lobbyingresponse.py +166 -0
  283. finance_dev-0.9.0/src/finance_dev/models/logosearchresponse.py +152 -0
  284. finance_dev-0.9.0/src/finance_dev/models/logosyncresponse.py +277 -0
  285. finance_dev-0.9.0/src/finance_dev/models/marketbreadth.py +97 -0
  286. finance_dev-0.9.0/src/finance_dev/models/marketbreadthresponse.py +44 -0
  287. finance_dev-0.9.0/src/finance_dev/models/marketholiday.py +56 -0
  288. finance_dev-0.9.0/src/finance_dev/models/marketholidayresponse.py +39 -0
  289. finance_dev-0.9.0/src/finance_dev/models/marketstatus.py +67 -0
  290. finance_dev-0.9.0/src/finance_dev/models/mergersandacquisitionsresponse.py +186 -0
  291. finance_dev-0.9.0/src/finance_dev/models/metricseriespoint.py +43 -0
  292. finance_dev-0.9.0/src/finance_dev/models/netinflow.py +81 -0
  293. finance_dev-0.9.0/src/finance_dev/models/netinflowresponse.py +44 -0
  294. finance_dev-0.9.0/src/finance_dev/models/newsitem.py +102 -0
  295. finance_dev-0.9.0/src/finance_dev/models/newslistresponse.py +128 -0
  296. finance_dev-0.9.0/src/finance_dev/models/newssentimentresponse.py +176 -0
  297. finance_dev-0.9.0/src/finance_dev/models/newstypeenum.py +16 -0
  298. finance_dev-0.9.0/src/finance_dev/models/optionchainsnapshotresponse.py +64 -0
  299. finance_dev-0.9.0/src/finance_dev/models/optioncontractsnapshotresponse.py +64 -0
  300. finance_dev-0.9.0/src/finance_dev/models/optioncontractsnapshotrow.py +164 -0
  301. finance_dev-0.9.0/src/finance_dev/models/optioncontractsresponse.py +131 -0
  302. finance_dev-0.9.0/src/finance_dev/models/optiondetailsdto.py +72 -0
  303. finance_dev-0.9.0/src/finance_dev/models/optionexpirydatesresponse.py +53 -0
  304. finance_dev-0.9.0/src/finance_dev/models/optionlasttraderesponse.py +169 -0
  305. finance_dev-0.9.0/src/finance_dev/models/optionopencloseresponse.py +97 -0
  306. finance_dev-0.9.0/src/finance_dev/models/optionpreviousdayresponse.py +89 -0
  307. finance_dev-0.9.0/src/finance_dev/models/optionquotesresponse.py +138 -0
  308. finance_dev-0.9.0/src/finance_dev/models/optionsactivityresponse.py +265 -0
  309. finance_dev-0.9.0/src/finance_dev/models/optionsnapshotcontractdetails.py +85 -0
  310. finance_dev-0.9.0/src/finance_dev/models/optionsnapshotdaybar.py +107 -0
  311. finance_dev-0.9.0/src/finance_dev/models/optionsnapshotgreeks.py +67 -0
  312. finance_dev-0.9.0/src/finance_dev/models/optionsnapshotlastquote.py +116 -0
  313. finance_dev-0.9.0/src/finance_dev/models/optionsnapshotlasttrade.py +102 -0
  314. finance_dev-0.9.0/src/finance_dev/models/optionsnapshotunderlying.py +86 -0
  315. finance_dev-0.9.0/src/finance_dev/models/optionsscreeneritem.py +151 -0
  316. finance_dev-0.9.0/src/finance_dev/models/optionsunusualactivityresponse.py +62 -0
  317. finance_dev-0.9.0/src/finance_dev/models/optionsunusualactivitytrade.py +103 -0
  318. finance_dev-0.9.0/src/finance_dev/models/optiontradesresponse.py +132 -0
  319. finance_dev-0.9.0/src/finance_dev/models/orderrequesttimeinforceenum.py +29 -0
  320. finance_dev-0.9.0/src/finance_dev/models/ordersideenum.py +20 -0
  321. finance_dev-0.9.0/src/finance_dev/models/ordertypeenum.py +20 -0
  322. finance_dev-0.9.0/src/finance_dev/models/ordleg.py +162 -0
  323. finance_dev-0.9.0/src/finance_dev/models/ordresponse.py +202 -0
  324. finance_dev-0.9.0/src/finance_dev/models/ownershipdataresponse.py +39 -0
  325. finance_dev-0.9.0/src/finance_dev/models/ownershiprecord.py +74 -0
  326. finance_dev-0.9.0/src/finance_dev/models/placeorderop.py +40 -0
  327. finance_dev-0.9.0/src/finance_dev/models/placeordrequest_union.py +335 -0
  328. finance_dev-0.9.0/src/finance_dev/models/placepredictionorderop.py +114 -0
  329. finance_dev-0.9.0/src/finance_dev/models/predmdbaseevent.py +62 -0
  330. finance_dev-0.9.0/src/finance_dev/models/predmdbaseeventhit.py +53 -0
  331. finance_dev-0.9.0/src/finance_dev/models/predmdbaseeventsearchresult.py +46 -0
  332. finance_dev-0.9.0/src/finance_dev/models/predmdbaseeventwithevents.py +32 -0
  333. finance_dev-0.9.0/src/finance_dev/models/predmdbatchhistoryrequest.py +16 -0
  334. finance_dev-0.9.0/src/finance_dev/models/predmdbatchhistoryresponse.py +16 -0
  335. finance_dev-0.9.0/src/finance_dev/models/predmdcategory.py +48 -0
  336. finance_dev-0.9.0/src/finance_dev/models/predmdcontract.py +177 -0
  337. finance_dev-0.9.0/src/finance_dev/models/predmdcontracthit.py +157 -0
  338. finance_dev-0.9.0/src/finance_dev/models/predmdcontractsearchresult.py +46 -0
  339. finance_dev-0.9.0/src/finance_dev/models/predmdevent.py +136 -0
  340. finance_dev-0.9.0/src/finance_dev/models/predmdeventhit.py +73 -0
  341. finance_dev-0.9.0/src/finance_dev/models/predmdeventsearchresult.py +46 -0
  342. finance_dev-0.9.0/src/finance_dev/models/predmdeventwithcontracts.py +22 -0
  343. finance_dev-0.9.0/src/finance_dev/models/predmdhistoryrequest.py +59 -0
  344. finance_dev-0.9.0/src/finance_dev/models/predmdhistoryresponse.py +53 -0
  345. finance_dev-0.9.0/src/finance_dev/models/predmdtick.py +53 -0
  346. finance_dev-0.9.0/src/finance_dev/models/predordersapperror.py +78 -0
  347. finance_dev-0.9.0/src/finance_dev/models/predordersorder.py +267 -0
  348. finance_dev-0.9.0/src/finance_dev/models/predordersorderdetail.py +26 -0
  349. finance_dev-0.9.0/src/finance_dev/models/predordersorderpage.py +45 -0
  350. finance_dev-0.9.0/src/finance_dev/models/predordersorderreport.py +88 -0
  351. finance_dev-0.9.0/src/finance_dev/models/predordersplaceorderrequest.py +159 -0
  352. finance_dev-0.9.0/src/finance_dev/models/previeworderop.py +40 -0
  353. finance_dev-0.9.0/src/finance_dev/models/previeworderresponse.py +127 -0
  354. finance_dev-0.9.0/src/finance_dev/models/pricetargetresponse.py +89 -0
  355. finance_dev-0.9.0/src/finance_dev/models/quotedata.py +49 -0
  356. finance_dev-0.9.0/src/finance_dev/models/quotesresponse.py +62 -0
  357. finance_dev-0.9.0/src/finance_dev/models/quotevalues.py +114 -0
  358. finance_dev-0.9.0/src/finance_dev/models/rating.py +193 -0
  359. finance_dev-0.9.0/src/finance_dev/models/ratingsaccuracy.py +242 -0
  360. finance_dev-0.9.0/src/finance_dev/models/replaceconfigwatchlistsop.py +40 -0
  361. finance_dev-0.9.0/src/finance_dev/models/replaceorderop.py +40 -0
  362. finance_dev-0.9.0/src/finance_dev/models/replaceordrequest_union.py +367 -0
  363. finance_dev-0.9.0/src/finance_dev/models/replaceordresponse.py +144 -0
  364. finance_dev-0.9.0/src/finance_dev/models/reportedbsitem.py +53 -0
  365. finance_dev-0.9.0/src/finance_dev/models/reportedfiling.py +110 -0
  366. finance_dev-0.9.0/src/finance_dev/models/reportedreport.py +39 -0
  367. finance_dev-0.9.0/src/finance_dev/models/reportingfrequency.py +16 -0
  368. finance_dev-0.9.0/src/finance_dev/models/revenuebreakdownaxis.py +52 -0
  369. finance_dev-0.9.0/src/finance_dev/models/revenuebreakdowndatapoint.py +58 -0
  370. finance_dev-0.9.0/src/finance_dev/models/revenuebreakdownentry.py +51 -0
  371. finance_dev-0.9.0/src/finance_dev/models/revenuebreakdowninner.py +75 -0
  372. finance_dev-0.9.0/src/finance_dev/models/revenueestimatesresponse.py +176 -0
  373. finance_dev-0.9.0/src/finance_dev/models/screenclause.py +70 -0
  374. finance_dev-0.9.0/src/finance_dev/models/screengroup.py +75 -0
  375. finance_dev-0.9.0/src/finance_dev/models/searchetbsymbolsop.py +40 -0
  376. finance_dev-0.9.0/src/finance_dev/models/searchindicesop.py +55 -0
  377. finance_dev-0.9.0/src/finance_dev/models/searchlogosop.py +158 -0
  378. finance_dev-0.9.0/src/finance_dev/models/searchmarketsymbolsop.py +80 -0
  379. finance_dev-0.9.0/src/finance_dev/models/searchop.py +232 -0
  380. finance_dev-0.9.0/src/finance_dev/models/searchsymbolitem.py +76 -0
  381. finance_dev-0.9.0/src/finance_dev/models/searchsymbolresponseitem.py +71 -0
  382. finance_dev-0.9.0/src/finance_dev/models/searchsymbolsop.py +77 -0
  383. finance_dev-0.9.0/src/finance_dev/models/secfiling.py +91 -0
  384. finance_dev-0.9.0/src/finance_dev/models/secfilingsresponse.py +39 -0
  385. finance_dev-0.9.0/src/finance_dev/models/sectoravgchange.py +50 -0
  386. finance_dev-0.9.0/src/finance_dev/models/security.py +59 -0
  387. finance_dev-0.9.0/src/finance_dev/models/securitytypeenum.py +16 -0
  388. finance_dev-0.9.0/src/finance_dev/models/shortinterestresponse.py +126 -0
  389. finance_dev-0.9.0/src/finance_dev/models/shortvolumeresponse.py +198 -0
  390. finance_dev-0.9.0/src/finance_dev/models/socialsentimentresponse.py +124 -0
  391. finance_dev-0.9.0/src/finance_dev/models/sortorderenum.py +13 -0
  392. finance_dev-0.9.0/src/finance_dev/models/spinoffsresponse.py +136 -0
  393. finance_dev-0.9.0/src/finance_dev/models/stockaggregatesresponse.py +92 -0
  394. finance_dev-0.9.0/src/finance_dev/models/stocklastquoteresponse.py +175 -0
  395. finance_dev-0.9.0/src/finance_dev/models/stocklasttraderesponse.py +169 -0
  396. finance_dev-0.9.0/src/finance_dev/models/stockohlcbar.py +85 -0
  397. finance_dev-0.9.0/src/finance_dev/models/stockopencloseresponse.py +109 -0
  398. finance_dev-0.9.0/src/finance_dev/models/stockpreviousdayresponse.py +86 -0
  399. finance_dev-0.9.0/src/finance_dev/models/stockquotesresponse.py +170 -0
  400. finance_dev-0.9.0/src/finance_dev/models/stockscreenerop.py +144 -0
  401. finance_dev-0.9.0/src/finance_dev/models/stockscreenerrequest.py +131 -0
  402. finance_dev-0.9.0/src/finance_dev/models/stockscreenerresponse.py +197 -0
  403. finance_dev-0.9.0/src/finance_dev/models/stocksnapshotsresponse.py +454 -0
  404. finance_dev-0.9.0/src/finance_dev/models/stocksplitsresponse.py +144 -0
  405. finance_dev-0.9.0/src/finance_dev/models/stocktradesresponse.py +164 -0
  406. finance_dev-0.9.0/src/finance_dev/models/supplychainresponse.py +158 -0
  407. finance_dev-0.9.0/src/finance_dev/models/supportresistancelevelsresponse.py +68 -0
  408. finance_dev-0.9.0/src/finance_dev/models/symboldetails.py +119 -0
  409. finance_dev-0.9.0/src/finance_dev/models/symbolerror.py +43 -0
  410. finance_dev-0.9.0/src/finance_dev/models/symbolinfo.py +183 -0
  411. finance_dev-0.9.0/src/finance_dev/models/synclogosop.py +146 -0
  412. finance_dev-0.9.0/src/finance_dev/models/technicalindicatorresponse.py +43 -0
  413. finance_dev-0.9.0/src/finance_dev/models/technicalindicatortype.py +21 -0
  414. finance_dev-0.9.0/src/finance_dev/models/technicalpatternsresponse.py +249 -0
  415. finance_dev-0.9.0/src/finance_dev/models/tenderofferidentifiertype.py +26 -0
  416. finance_dev-0.9.0/src/finance_dev/models/tenderoffersresponse.py +548 -0
  417. finance_dev-0.9.0/src/finance_dev/models/tickchartbars.py +104 -0
  418. finance_dev-0.9.0/src/finance_dev/models/tickresolution.py +20 -0
  419. finance_dev-0.9.0/src/finance_dev/models/timeinforceenum.py +26 -0
  420. finance_dev-0.9.0/src/finance_dev/models/tradeorderlegv2.py +164 -0
  421. finance_dev-0.9.0/src/finance_dev/models/tradeorderv2.py +434 -0
  422. finance_dev-0.9.0/src/finance_dev/models/transcriptresponse.py +162 -0
  423. finance_dev-0.9.0/src/finance_dev/models/transcriptsresponse.py +89 -0
  424. finance_dev-0.9.0/src/finance_dev/models/treasuryyieldsresponse.py +160 -0
  425. finance_dev-0.9.0/src/finance_dev/models/unifiedsnapshotresponse.py +308 -0
  426. finance_dev-0.9.0/src/finance_dev/models/updateconfigwatchlistbyidop.py +65 -0
  427. finance_dev-0.9.0/src/finance_dev/models/updatewatchlistrequest_union.py +134 -0
  428. finance_dev-0.9.0/src/finance_dev/models/upgradesdowngradesresponse.py +98 -0
  429. finance_dev-0.9.0/src/finance_dev/models/usaspendingresponse.py +222 -0
  430. finance_dev-0.9.0/src/finance_dev/models/usptopatentsresponse.py +134 -0
  431. finance_dev-0.9.0/src/finance_dev/models/visaapplicationsresponse.py +228 -0
  432. finance_dev-0.9.0/src/finance_dev/models/watchlist.py +68 -0
  433. finance_dev-0.9.0/src/finance_dev/models/watchlistrequest.py +43 -0
  434. finance_dev-0.9.0/src/finance_dev/models/watchlistresponse.py +44 -0
  435. finance_dev-0.9.0/src/finance_dev/news_sdk.py +829 -0
  436. finance_dev-0.9.0/src/finance_dev/options.py +3443 -0
  437. finance_dev-0.9.0/src/finance_dev/orders.py +1907 -0
  438. finance_dev-0.9.0/src/finance_dev/ownership.py +1386 -0
  439. finance_dev-0.9.0/src/finance_dev/predictions.py +29 -0
  440. finance_dev-0.9.0/src/finance_dev/predictions_orders.py +852 -0
  441. finance_dev-0.9.0/src/finance_dev/py.typed +1 -0
  442. finance_dev-0.9.0/src/finance_dev/sdk.py +347 -0
  443. finance_dev-0.9.0/src/finance_dev/sdkconfiguration.py +50 -0
  444. finance_dev-0.9.0/src/finance_dev/signals.py +338 -0
  445. finance_dev-0.9.0/src/finance_dev/stocks.py +3131 -0
  446. finance_dev-0.9.0/src/finance_dev/technicalanalysis_sdk.py +1137 -0
  447. finance_dev-0.9.0/src/finance_dev/types/__init__.py +25 -0
  448. finance_dev-0.9.0/src/finance_dev/types/base64fileinput.py +44 -0
  449. finance_dev-0.9.0/src/finance_dev/types/basemodel.py +78 -0
  450. finance_dev-0.9.0/src/finance_dev/utils/__init__.py +181 -0
  451. finance_dev-0.9.0/src/finance_dev/utils/annotations.py +80 -0
  452. finance_dev-0.9.0/src/finance_dev/utils/datetimes.py +42 -0
  453. finance_dev-0.9.0/src/finance_dev/utils/dynamic_imports.py +55 -0
  454. finance_dev-0.9.0/src/finance_dev/utils/enums.py +135 -0
  455. finance_dev-0.9.0/src/finance_dev/utils/eventstreaming.py +327 -0
  456. finance_dev-0.9.0/src/finance_dev/utils/forms.py +240 -0
  457. finance_dev-0.9.0/src/finance_dev/utils/headers.py +137 -0
  458. finance_dev-0.9.0/src/finance_dev/utils/logger.py +23 -0
  459. finance_dev-0.9.0/src/finance_dev/utils/metadata.py +120 -0
  460. finance_dev-0.9.0/src/finance_dev/utils/queryparams.py +218 -0
  461. finance_dev-0.9.0/src/finance_dev/utils/requestbodies.py +68 -0
  462. finance_dev-0.9.0/src/finance_dev/utils/retries.py +373 -0
  463. finance_dev-0.9.0/src/finance_dev/utils/security.py +199 -0
  464. finance_dev-0.9.0/src/finance_dev/utils/serializers.py +327 -0
  465. finance_dev-0.9.0/src/finance_dev/utils/unmarshal_json_response.py +39 -0
  466. finance_dev-0.9.0/src/finance_dev/utils/url.py +155 -0
  467. finance_dev-0.9.0/src/finance_dev/utils/values.py +143 -0
  468. finance_dev-0.9.0/src/finance_dev/watchlist_sdk.py +1583 -0
  469. finance_dev-0.9.0/src/finance_dev/websocket/__init__.py +57 -0
  470. finance_dev-0.9.0/src/finance_dev/websocket/account.py +5 -0
  471. finance_dev-0.9.0/src/finance_dev/websocket/auth.py +124 -0
  472. finance_dev-0.9.0/src/finance_dev/websocket/chart.py +5 -0
  473. finance_dev-0.9.0/src/finance_dev/websocket/codec.py +66 -0
  474. finance_dev-0.9.0/src/finance_dev/websocket/config.py +52 -0
  475. finance_dev-0.9.0/src/finance_dev/websocket/errors.py +54 -0
  476. finance_dev-0.9.0/src/finance_dev/websocket/market.py +5 -0
  477. finance_dev-0.9.0/src/finance_dev/websocket/models/__init__.py +52 -0
  478. finance_dev-0.9.0/src/finance_dev/websocket/models/account.py +60 -0
  479. finance_dev-0.9.0/src/finance_dev/websocket/models/chart.py +44 -0
  480. finance_dev-0.9.0/src/finance_dev/websocket/models/common.py +85 -0
  481. finance_dev-0.9.0/src/finance_dev/websocket/models/market.py +113 -0
  482. finance_dev-0.9.0/src/finance_dev/websocket/resources.py +327 -0
  483. finance_dev-0.9.0/src/finance_dev/websocket/sdk.py +13 -0
  484. finance_dev-0.9.0/src/finance_dev/websocket/transport/async_connection.py +493 -0
  485. finance_dev-0.9.0/src/finance_dev/websocket/transport/base.py +78 -0
  486. finance_dev-0.9.0/src/finance_dev/websocket/transport/sync_connection.py +470 -0
  487. finance_dev-0.9.0/src/finance_dev.egg-info/PKG-INFO +913 -0
  488. finance_dev-0.9.0/src/finance_dev.egg-info/SOURCES.txt +517 -0
  489. finance_dev-0.9.0/src/finance_dev.egg-info/dependency_links.txt +1 -0
  490. finance_dev-0.9.0/src/finance_dev.egg-info/requires.txt +5 -0
  491. finance_dev-0.9.0/src/finance_dev.egg-info/top_level.txt +1 -0
  492. finance_dev-0.9.0/tests/test_accounts.py +132 -0
  493. finance_dev-0.9.0/tests/test_alternativedata.py +439 -0
  494. finance_dev-0.9.0/tests/test_analytics.py +565 -0
  495. finance_dev-0.9.0/tests/test_basicfinancials_validation.py +39 -0
  496. finance_dev-0.9.0/tests/test_calendar.py +218 -0
  497. finance_dev-0.9.0/tests/test_chart.py +548 -0
  498. finance_dev-0.9.0/tests/test_client.py +14 -0
  499. finance_dev-0.9.0/tests/test_company.py +204 -0
  500. finance_dev-0.9.0/tests/test_corporateactions.py +208 -0
  501. finance_dev-0.9.0/tests/test_economy.py +155 -0
  502. finance_dev-0.9.0/tests/test_estimates.py +355 -0
  503. finance_dev-0.9.0/tests/test_etf.py +196 -0
  504. finance_dev-0.9.0/tests/test_filings.py +89 -0
  505. finance_dev-0.9.0/tests/test_financials.py +470 -0
  506. finance_dev-0.9.0/tests/test_history.py +75 -0
  507. finance_dev-0.9.0/tests/test_indices.py +288 -0
  508. finance_dev-0.9.0/tests/test_logos.py +60 -0
  509. finance_dev-0.9.0/tests/test_market.py +396 -0
  510. finance_dev-0.9.0/tests/test_markets.py +155 -0
  511. finance_dev-0.9.0/tests/test_news_sdk.py +136 -0
  512. finance_dev-0.9.0/tests/test_options.py +400 -0
  513. finance_dev-0.9.0/tests/test_orders.py +909 -0
  514. finance_dev-0.9.0/tests/test_ownership.py +191 -0
  515. finance_dev-0.9.0/tests/test_predictions_orders.py +177 -0
  516. finance_dev-0.9.0/tests/test_signals.py +49 -0
  517. finance_dev-0.9.0/tests/test_stocks.py +269 -0
  518. finance_dev-0.9.0/tests/test_technicalanalysis_sdk.py +196 -0
  519. finance_dev-0.9.0/tests/test_watchlist_sdk.py +594 -0
@@ -0,0 +1,913 @@
1
+ Metadata-Version: 2.4
2
+ Name: finance_dev
3
+ Version: 0.9.0
4
+ Summary: Python Client SDK to interact with finance.dev.
5
+ Author: Speakeasy
6
+ Requires-Python: >=3.10
7
+ Description-Content-Type: text/markdown
8
+ Requires-Dist: httpcore>=1.0.9
9
+ Requires-Dist: httpx>=0.28.1
10
+ Requires-Dist: jsonpath-python>=1.0.6
11
+ Requires-Dist: pydantic>=2.11.2
12
+ Requires-Dist: websockets<18.0,>=15.0
13
+
14
+ # finance-dev
15
+
16
+ Developer-friendly & type-safe Python SDK specifically catered to leverage [finance.dev](https://finance.dev) API.
17
+
18
+
19
+ <!-- Start Summary [summary] -->
20
+ ## Summary
21
+
22
+ Aries API — OpenAPI Specification: OpenAPI Specification for the Aries trading platform API.
23
+
24
+ # Authentication
25
+
26
+ Learn how to authenticate with the Aries API using OAuth2 and manage access tokens in your SDK.
27
+
28
+ ## Overview
29
+
30
+ The Aries API uses **OAuth2 with Bearer tokens** (JWT format) for authentication. All API requests require a valid access token in the `Authorization` header:
31
+
32
+ ```
33
+ Authorization: Bearer <access_token>
34
+ ```
35
+
36
+ ## Providing Client ID and Client Secret (SDK)
37
+
38
+ When using the generated SDK, provide your **Client ID** and **Client Secret** when you create the API client (e.g. in the constructor or security options). The SDK will use these to obtain and refresh the access token internally; you do not need to manage tokens yourself.
39
+
40
+ Obtain your OAuth2 credentials from the Aries platform (e.g. Client Center / Manage Account at https://app.aries.com):
41
+
42
+ - **Client ID** – Your application identifier (pass to SDK client)
43
+ - **Client Secret** – Your application secret key (pass to SDK client; use PKCE for public clients where secret cannot be stored)
44
+
45
+ ## Authentication Flow
46
+
47
+ ### 1. Authorization Code Flow
48
+
49
+ For server-side or confidential clients:
50
+
51
+ 1. **Redirect the user** to the authorization URL to sign in and consent:
52
+ - **URL:** `https://app.aries.com/oauth2/authorize`
53
+ - **Query params:** `response_type=code`, `client_id`, `redirect_uri`, `scope`, `state`
54
+
55
+ 2. **Exchange the code for tokens** (after user is redirected back with `?code=.`):
56
+ - **POST** `https://api.aries.com/v1/oauth2/token`
57
+ - **Body:** `grant_type=authorization_code`, `code`, `redirect_uri`, `client_id`, `client_secret`
58
+ - Response includes `access_token` and `refresh_token`
59
+
60
+ 3. **Call the API** with the access token: `Authorization: Bearer <access_token>`
61
+
62
+ ### 2. PKCE Flow
63
+
64
+ For SPAs and mobile apps (public clients that cannot store `client_secret`):
65
+
66
+ 1. Generate a **code_verifier** (random string) and **code_challenge** = BASE64URL(SHA256(code_verifier)).
67
+ 2. **Redirect the user** to `https://app.aries.com/oauth2/authorize` with `code_challenge`, `code_challenge_method=S256`, plus `client_id`, `redirect_uri`, `scope`, `state`.
68
+ 3. **Exchange the code** at POST `https://api.aries.com/v1/oauth2/token` with `grant_type=authorization_code`, `code`, `redirect_uri`, `client_id`, `code_verifier` (no client_secret).
69
+ 4. Use the returned `access_token` as Bearer.
70
+
71
+ ### 3. MFA Verification
72
+
73
+ If the user has MFA enabled, the authorize step may return `is_mfa: true` and a `next_step_auth_id`. Call **POST** `https://api.aries.com/v1/oauth2/authorize/mfa` with `next_step_auth_id` and `verification_code` (6-digit code). Then continue with **POST** `/v1/oauth2/authorize/confirm` to get the authorization code, and exchange it at `/v1/oauth2/token`.
74
+
75
+ ## Token Management
76
+
77
+ - **Refresh when expired:** POST `https://api.aries.com/v1/oauth2/token` with `grant_type=refresh_token`, `client_id`, `client_secret`, `refresh_token`.
78
+ - **Using a Bearer token directly:** If you already have an access token, set the header `Authorization: Bearer <access_token>` on every request. The SDK can accept a pre-obtained token and use it until it expires.
79
+
80
+ ## OAuth2 Scopes
81
+
82
+ Request only the scopes your application needs. Available scopes:
83
+
84
+ | Scope | Description |
85
+ |-------|-------------|
86
+ | `user:information` | View user profile and personal details |
87
+ | `watchlist:information` | View your watchlists and their symbols |
88
+ | `watchlist:management` | Create, update, replace, and delete your watchlists |
89
+ | `account:information` | View account balances, positions, and transaction history |
90
+ | `order:execution` | Place, modify, and cancel orders |
91
+ | `order:information` | View order history and status |
92
+ | `position:information` | View current positions and holdings |
93
+ | `market:information` | Access live and historical market data |
94
+ | `calendar:information` | Access earnings, economic, and market schedule data |
95
+ | `options:information` | Access options chains and expiration data |
96
+ | `analytics:information` | View analytics, ratings, and market insights |
97
+ | `market:supplemental` | News, company profiles, financials, filings, ETF data, technical analysis |
98
+
99
+ Specify multiple scopes as a space-separated string, e.g. `account:information order:execution market:information`.
100
+
101
+ ## Security Best Practices
102
+
103
+ - **Store credentials securely** – Use environment variables or a secrets manager for `client_id` and `client_secret`. Never hardcode them.
104
+ - **Handle token expiration** – Check for 401 responses and refresh the token using the refresh_token, then retry the request.
105
+ - **Use HTTPS** – All authorization and token endpoints must be called over HTTPS.
106
+ - **Validate state** – When using the authorization code flow, validate the `state` parameter on the callback to prevent CSRF.
107
+
108
+ ## Error Handling
109
+
110
+ - **400 Bad Request** – Invalid or missing parameters, validation failures, or malformed JSON. Response bodies follow the same patterns as other errors (flat `error` string, optional `codes`, nested `error` object, or rarely no body).
111
+
112
+ - **401 Unauthorized** – Invalid or expired access token; refresh the token or re-authenticate. JSON bodies are not identical on every route: you may see a flat `error` string (sometimes with `codes`), a nested `error` object (`type`, `code`, `message`), or rarely an empty body
113
+
114
+ - **403 Forbidden** – Insufficient scope or permissions for the requested resource. Error JSON may be flat or nested, like 400/401.
115
+
116
+ - **404 Not Found** – Resource does not exist or is not visible. Error JSON may be flat or nested.
117
+
118
+ - **500 / 5xx** – Server or upstream failure; retry with backoff. Do not depend on a single error JSON shape; some responses may have no body.
119
+
120
+
121
+ ---
122
+
123
+ Endpoints in this spec: health, OAuth2 (authorize, confirm, mfa, token), users, accounts, orders, market data, watchlist, chart, analytics, calendars, company, economy, financials, indices, options, news, and supplemental data.
124
+ <!-- End Summary [summary] -->
125
+
126
+ <!-- Start Table of Contents [toc] -->
127
+ ## Table of Contents
128
+ <!-- $toc-max-depth=2 -->
129
+ * [finance-dev](#finance-dev)
130
+ * [Authentication](#authentication)
131
+ * [Overview](#overview)
132
+ * [Providing Client ID and Client Secret (SDK)](#providing-client-id-and-client-secret-sdk)
133
+ * [Authentication Flow](#authentication-flow)
134
+ * [Token Management](#token-management)
135
+ * [OAuth2 Scopes](#oauth2-scopes)
136
+ * [Security Best Practices](#security-best-practices)
137
+ * [Error Handling](#error-handling)
138
+ * [SDK Installation](#sdk-installation)
139
+ * [IDE Support](#ide-support)
140
+ * [SDK Example Usage](#sdk-example-usage)
141
+ * [Authentication](#authentication-1)
142
+ * [Available Resources and Operations](#available-resources-and-operations)
143
+ * [Pagination](#pagination)
144
+ * [Retries](#retries)
145
+ * [Error Handling](#error-handling-1)
146
+ * [Server Selection](#server-selection)
147
+ * [Custom HTTP Client](#custom-http-client)
148
+ * [Resource Management](#resource-management)
149
+ * [Debugging](#debugging)
150
+ * [WebSocket streaming](#websocket-streaming)
151
+ * [Development](#development)
152
+ * [Maturity](#maturity)
153
+ * [Contributions](#contributions)
154
+
155
+ <!-- End Table of Contents [toc] -->
156
+
157
+ <!-- Start SDK Installation [installation] -->
158
+ ## SDK Installation
159
+
160
+ > [!NOTE]
161
+ > **Python version upgrade policy**
162
+ >
163
+ > Once a Python version reaches its [official end of life date](https://devguide.python.org/versions/), a 3-month grace period is provided for users to upgrade. Following this grace period, the minimum python version supported in the SDK will be updated.
164
+
165
+ The SDK can be installed with *uv*, *pip*, or *poetry* package managers.
166
+
167
+ ### uv
168
+
169
+ *uv* is a fast Python package installer and resolver, designed as a drop-in replacement for pip and pip-tools. It's recommended for its speed and modern Python tooling capabilities.
170
+
171
+ ```bash
172
+ uv add finance_dev
173
+ ```
174
+
175
+ ### PIP
176
+
177
+ *PIP* is the default package installer for Python, enabling easy installation and management of packages from PyPI via the command line.
178
+
179
+ ```bash
180
+ pip install finance_dev
181
+ ```
182
+
183
+ ### Poetry
184
+
185
+ *Poetry* is a modern tool that simplifies dependency management and package publishing by using a single `pyproject.toml` file to handle project metadata and dependencies.
186
+
187
+ ```bash
188
+ poetry add finance_dev
189
+ ```
190
+
191
+ ### Shell and script usage with `uv`
192
+
193
+ You can use this SDK in a Python shell with [uv](https://docs.astral.sh/uv/) and the `uvx` command that comes with it like so:
194
+
195
+ ```shell
196
+ uvx --from finance_dev python
197
+ ```
198
+
199
+ It's also possible to write a standalone Python script without needing to set up a whole project like so:
200
+
201
+ ```python
202
+ #!/usr/bin/env -S uv run --script
203
+ # /// script
204
+ # requires-python = ">=3.10"
205
+ # dependencies = [
206
+ # "finance_dev",
207
+ # ]
208
+ # ///
209
+
210
+ from finance_dev import FinanceDev
211
+
212
+ sdk = FinanceDev(
213
+ # SDK arguments
214
+ )
215
+
216
+ # Rest of script here...
217
+ ```
218
+
219
+ Once that is saved to a file, you can run it with `uv run script.py` where
220
+ `script.py` can be replaced with the actual file name.
221
+ <!-- End SDK Installation [installation] -->
222
+
223
+ <!-- Start IDE Support [idesupport] -->
224
+ ## IDE Support
225
+
226
+ ### PyCharm
227
+
228
+ Generally, the SDK will work well with most IDEs out of the box. However, when using PyCharm, you can enjoy much better integration with Pydantic by installing an additional plugin.
229
+
230
+ - [PyCharm Pydantic Plugin](https://docs.pydantic.dev/latest/integrations/pycharm/)
231
+ <!-- End IDE Support [idesupport] -->
232
+
233
+ <!-- Start SDK Example Usage [usage] -->
234
+ ## SDK Example Usage
235
+
236
+ ### Example
237
+
238
+ ```python
239
+ # Synchronous Example
240
+ from finance_dev import FinanceDev, models
241
+
242
+
243
+ with FinanceDev(
244
+ security=models.Security(
245
+ client_id="<YOUR_CLIENT_ID_HERE>",
246
+ client_secret="<YOUR_CLIENT_SECRET_HERE>",
247
+ ),
248
+ ) as fd_client:
249
+
250
+ res = fd_client.accounts.get_account_positions(id="TEST-ACCOUNT-001")
251
+
252
+ assert res.get_positions_response is not None
253
+
254
+ # Handle response
255
+ print(res.get_positions_response)
256
+ ```
257
+
258
+ </br>
259
+
260
+ The same SDK client can also be used to make asynchronous requests by importing asyncio.
261
+
262
+ ```python
263
+ # Asynchronous Example
264
+ import asyncio
265
+ from finance_dev import FinanceDev, models
266
+
267
+ async def main():
268
+
269
+ async with FinanceDev(
270
+ security=models.Security(
271
+ client_id="<YOUR_CLIENT_ID_HERE>",
272
+ client_secret="<YOUR_CLIENT_SECRET_HERE>",
273
+ ),
274
+ ) as fd_client:
275
+
276
+ res = await fd_client.accounts.get_account_positions_async(id="TEST-ACCOUNT-001")
277
+
278
+ assert res.get_positions_response is not None
279
+
280
+ # Handle response
281
+ print(res.get_positions_response)
282
+
283
+ asyncio.run(main())
284
+ ```
285
+ <!-- End SDK Example Usage [usage] -->
286
+
287
+ <!-- Start Authentication [security] -->
288
+ ## Authentication
289
+
290
+ ### Per-Client Security Schemes
291
+
292
+ This SDK supports the following security scheme globally:
293
+
294
+ | Name | Type | Scheme |
295
+ | ----------------------------------------------- | ------ | ------------------------------ |
296
+ | `client_id`<br/>`client_secret`<br/>`token_url` | oauth2 | OAuth2 Client Credentials Flow |
297
+
298
+ You can set the security parameters through the `security` optional parameter when initializing the SDK client instance. For example:
299
+ ```python
300
+ from finance_dev import FinanceDev, models
301
+
302
+
303
+ with FinanceDev(
304
+ security=models.Security(
305
+ client_id="<YOUR_CLIENT_ID_HERE>",
306
+ client_secret="<YOUR_CLIENT_SECRET_HERE>",
307
+ ),
308
+ ) as fd_client:
309
+
310
+ res = fd_client.accounts.get_account_positions(id="TEST-ACCOUNT-001")
311
+
312
+ assert res.get_positions_response is not None
313
+
314
+ # Handle response
315
+ print(res.get_positions_response)
316
+
317
+ ```
318
+ <!-- End Authentication [security] -->
319
+
320
+ <!-- Start Available Resources and Operations [operations] -->
321
+ ## Available Resources and Operations
322
+
323
+ <details open>
324
+ <summary>Available methods</summary>
325
+
326
+ ### [Accounts](docs/sdks/accounts/README.md)
327
+
328
+ * [get_account_positions](docs/sdks/accounts/README.md#get_account_positions) - Get Account Positions
329
+ * [get_account_balance](docs/sdks/accounts/README.md#get_account_balance) - Get Account Balance
330
+ * [get_user_accounts](docs/sdks/accounts/README.md#get_user_accounts) - Get User Accounts
331
+
332
+ ### [AlternativeData](docs/sdks/alternativedata/README.md)
333
+
334
+ * [get_bank_branches](docs/sdks/alternativedata/README.md#get_bank_branches) - Get Bank Branch
335
+ * [get_congressional_trading](docs/sdks/alternativedata/README.md#get_congressional_trading) - Get Congressional Trading
336
+ * [get_covid19_us_cases](docs/sdks/alternativedata/README.md#get_covid19_us_cases) - Get COVID-19 US
337
+ * [get_earnings_call_live](docs/sdks/alternativedata/README.md#get_earnings_call_live) - Get Earnings Call Live
338
+ * [get_earnings_quality_score](docs/sdks/alternativedata/README.md#get_earnings_quality_score) - Get Earnings Quality Score
339
+ * [get_company_esg](docs/sdks/alternativedata/README.md#get_company_esg) - Get Company ESG
340
+ * [get_fda_advisory_committee_calendar](docs/sdks/alternativedata/README.md#get_fda_advisory_committee_calendar) - Get FDA Advisory Committee Calendar
341
+ * [get_historical_esg](docs/sdks/alternativedata/README.md#get_historical_esg) - Get Historical ESG
342
+ * [get_investment_theme](docs/sdks/alternativedata/README.md#get_investment_theme) - Get Investment Theme
343
+ * [get_lobbying](docs/sdks/alternativedata/README.md#get_lobbying) - Get Lobbying
344
+ * [get_company_presentation](docs/sdks/alternativedata/README.md#get_company_presentation) - Get Company Presentation
345
+ * [get_social_sentiment](docs/sdks/alternativedata/README.md#get_social_sentiment) - Get Social Sentiment
346
+ * [get_supply_chain](docs/sdks/alternativedata/README.md#get_supply_chain) - Get Supply Chain
347
+ * [get_transcript](docs/sdks/alternativedata/README.md#get_transcript) - Get Transcript by ID
348
+ * [list_transcripts](docs/sdks/alternativedata/README.md#list_transcripts) - Get Transcripts List
349
+ * [get_usa_spending](docs/sdks/alternativedata/README.md#get_usa_spending) - Get USA Spending
350
+ * [get_uspto_patents](docs/sdks/alternativedata/README.md#get_uspto_patents) - Get USPTO Patent
351
+ * [get_visa_applications](docs/sdks/alternativedata/README.md#get_visa_applications) - Get Visa Application (H1-B)
352
+
353
+ ### [Analytics](docs/sdks/analytics/README.md)
354
+
355
+ * [get_analyst_insights](docs/sdks/analytics/README.md#get_analyst_insights) - Get Analyst Insights
356
+ * [get_market_breadth](docs/sdks/analytics/README.md#get_market_breadth) - Get Market Breadth
357
+ * [get_net_inflow](docs/sdks/analytics/README.md#get_net_inflow) - Get Net Inflow
358
+ * [get_ratings](docs/sdks/analytics/README.md#get_ratings) - Get Analyst Ratings
359
+ * [get_sector_tickers](docs/sdks/analytics/README.md#get_sector_tickers) - Get Sector Tickers
360
+ * [get_sector_wise_change](docs/sdks/analytics/README.md#get_sector_wise_change) - Get Sector-wise Change
361
+ * [get_top_gainers](docs/sdks/analytics/README.md#get_top_gainers) - Get Top Gaining Stocks
362
+ * [get_top_losers](docs/sdks/analytics/README.md#get_top_losers) - Get Top Losing Stocks
363
+ * [get_top_most_active](docs/sdks/analytics/README.md#get_top_most_active) - Get Most Active Stocks
364
+ * [get_options_et_fs_top_volume](docs/sdks/analytics/README.md#get_options_et_fs_top_volume) - Get Top ETF Options by Volume
365
+ * [get_options_stocks_top_gainers](docs/sdks/analytics/README.md#get_options_stocks_top_gainers) - Get Top Stock Options by Gains
366
+ * [get_options_stocks_top_volume](docs/sdks/analytics/README.md#get_options_stocks_top_volume) - Get Top Stock Options by Volume
367
+ * [stock_screener](docs/sdks/analytics/README.md#stock_screener) - Stock Screener
368
+
369
+ ### [Calendar](docs/sdks/calendar/README.md)
370
+
371
+ * [get_conference_calls](docs/sdks/calendar/README.md#get_conference_calls) - Get Conference Calls
372
+ * [get_earnings_calendar](docs/sdks/calendar/README.md#get_earnings_calendar) - Get Earnings Calendar
373
+ * [get_economics_calendar](docs/sdks/calendar/README.md#get_economics_calendar) - Get Economics Calendar
374
+ * [get_historical_data](docs/sdks/calendar/README.md#get_historical_data) - Get Historical Economic Data
375
+ * [get_mergers_and_acquisitions](docs/sdks/calendar/README.md#get_mergers_and_acquisitions) - Get Mergers & Acquisitions
376
+
377
+ ### [Chart](docs/sdks/chart/README.md)
378
+
379
+ * [get_chart_config](docs/sdks/chart/README.md#get_chart_config) - Get Chart Configuration
380
+ * [get_chart_history](docs/sdks/chart/README.md#get_chart_history) - Get Historical Chart Data
381
+ * [get_quotes](docs/sdks/chart/README.md#get_quotes) - Get Real-Time Quotes
382
+ * [search_symbols](docs/sdks/chart/README.md#search_symbols) - Search Symbols
383
+ * [get_symbol_info](docs/sdks/chart/README.md#get_symbol_info) - Get Symbol Information
384
+ * [get_tick_history](docs/sdks/chart/README.md#get_tick_history) - Get Tick-Based Chart Data
385
+ * [get_chart_time](docs/sdks/chart/README.md#get_chart_time) - Get Server Time
386
+
387
+ ### [Company](docs/sdks/company/README.md)
388
+
389
+ * [get_company_executives](docs/sdks/company/README.md#get_company_executives) - Get Company Executives
390
+ * [get_company_metrics](docs/sdks/company/README.md#get_company_metrics) - Get Company Financial Metrics
391
+ * [get_company_peers](docs/sdks/company/README.md#get_company_peers) - Get Company Peers
392
+ * [get_company_profile](docs/sdks/company/README.md#get_company_profile) - Get Company Profile
393
+
394
+ ### [CorporateActions](docs/sdks/corporateactions/README.md)
395
+
396
+ * [get_dividends](docs/sdks/corporateactions/README.md#get_dividends) - Get Dividend History
397
+ * [get_ipo_calendar](docs/sdks/corporateactions/README.md#get_ipo_calendar) - Get IPO Calendar
398
+ * [get_spinoffs](docs/sdks/corporateactions/README.md#get_spinoffs) - Get Corporate Spinoffs
399
+ * [get_tender_offers](docs/sdks/corporateactions/README.md#get_tender_offers) - Get Tender Offers
400
+ * [get_stock_splits](docs/sdks/corporateactions/README.md#get_stock_splits) - Get Stock Split History
401
+
402
+ ### [Economy](docs/sdks/economy/README.md)
403
+
404
+ * [get_inflation](docs/sdks/economy/README.md#get_inflation) - Get Latest Inflation Data
405
+ * [get_inflation_expectations](docs/sdks/economy/README.md#get_inflation_expectations) - Get Latest Inflation Expectations
406
+ * [get_treasury_yields](docs/sdks/economy/README.md#get_treasury_yields) - Get Latest Treasury Yields
407
+
408
+ ### [Estimates](docs/sdks/estimates/README.md)
409
+
410
+ * [get_earnings_surprises](docs/sdks/estimates/README.md#get_earnings_surprises) - Get Earnings Surprises
411
+ * [get_ebit_estimates](docs/sdks/estimates/README.md#get_ebit_estimates) - Get EBIT Estimates
412
+ * [get_ebitda_estimates](docs/sdks/estimates/README.md#get_ebitda_estimates) - Get EBITDA Estimates
413
+ * [get_eps_estimates](docs/sdks/estimates/README.md#get_eps_estimates) - Get EPS Estimates
414
+ * [get_price_target](docs/sdks/estimates/README.md#get_price_target) - Get Analyst Price Targets
415
+ * [get_revenue_estimates](docs/sdks/estimates/README.md#get_revenue_estimates) - Get Revenue Estimates
416
+ * [get_upgrades_downgrades](docs/sdks/estimates/README.md#get_upgrades_downgrades) - Get Analyst Upgrades & Downgrades
417
+
418
+ ### [Etf](docs/sdks/etf/README.md)
419
+
420
+ * [get_etf_country_allocation](docs/sdks/etf/README.md#get_etf_country_allocation) - Get ETF Country Allocation
421
+ * [get_etf_holdings](docs/sdks/etf/README.md#get_etf_holdings) - Get ETF Holdings
422
+ * [get_etf_profile](docs/sdks/etf/README.md#get_etf_profile) - Get ETF Profile
423
+ * [get_etf_sector_allocation](docs/sdks/etf/README.md#get_etf_sector_allocation) - Get ETF Sector Allocation
424
+
425
+ ### [Filings](docs/sdks/filings/README.md)
426
+
427
+ * [get_sec_filings](docs/sdks/filings/README.md#get_sec_filings) - Get SEC Filings
428
+ * [get_filings_similarity_index](docs/sdks/filings/README.md#get_filings_similarity_index) - Get Filings Similarity Index
429
+
430
+ ### [Financials](docs/sdks/financials/README.md)
431
+
432
+ * [get_cash_flow_statements](docs/sdks/financials/README.md#get_cash_flow_statements) - Get Cash Flow Statements
433
+ * [get_income_statements](docs/sdks/financials/README.md#get_income_statements) - Get Income Statements
434
+ * [get_financial_ratios](docs/sdks/financials/README.md#get_financial_ratios) - Get Financial Ratios
435
+ * [get_reported_financials](docs/sdks/financials/README.md#get_reported_financials) - Get Reported Financials
436
+ * [get_revenue_breakdown](docs/sdks/financials/README.md#get_revenue_breakdown) - Get Revenue Breakdown
437
+ * [get_short_interest](docs/sdks/financials/README.md#get_short_interest) - Get Short Interest Data
438
+ * [get_short_volume](docs/sdks/financials/README.md#get_short_volume) - Get Short Volume Data
439
+ * [get_financial_statements](docs/sdks/financials/README.md#get_financial_statements) - Get Financial Statements
440
+
441
+ ### [Indices](docs/sdks/indices/README.md)
442
+
443
+ * [get_index_bar](docs/sdks/indices/README.md#get_index_bar) - Get Index Bar Data
444
+ * [get_index_bars](docs/sdks/indices/README.md#get_index_bars) - Get Index Bars Data
445
+ * [list_indices_by_group](docs/sdks/indices/README.md#list_indices_by_group) - Get Indices By Group
446
+ * [get_index_chart_bars](docs/sdks/indices/README.md#get_index_chart_bars) - Get Index Chart Data
447
+ * [list_index_groups](docs/sdks/indices/README.md#list_index_groups) - Get Index Groups
448
+ * [list_indices](docs/sdks/indices/README.md#list_indices) - Get Index List
449
+ * [get_index_realtime_values](docs/sdks/indices/README.md#get_index_realtime_values) - Get Realtime Indices Values
450
+ * [search_indices](docs/sdks/indices/README.md#search_indices) - Search Indices
451
+
452
+ ### [Logos](docs/sdks/logos/README.md)
453
+
454
+ * [search_logos](docs/sdks/logos/README.md#search_logos) - Search Company Logos
455
+ * [sync_logos](docs/sdks/logos/README.md#sync_logos) - Sync Company Logos
456
+
457
+ ### [Market](docs/sdks/market/README.md)
458
+
459
+ * [get_etb_list](docs/sdks/market/README.md#get_etb_list) - Get Easy-to-Borrow List
460
+ * [search_etb_symbols](docs/sdks/market/README.md#search_etb_symbols) - Search Easy-to-Borrow Symbols
461
+ * [get_market_holidays](docs/sdks/market/README.md#get_market_holidays) - Get Market Holidays
462
+ * [get_market_status](docs/sdks/market/README.md#get_market_status) - Get Market Status
463
+ * [get_equity_details](docs/sdks/market/README.md#get_equity_details) - Get equity details
464
+ * [get_option_details](docs/sdks/market/README.md#get_option_details) - Get option details
465
+ * [search_market_symbols](docs/sdks/market/README.md#search_market_symbols) - Search Symbols
466
+
467
+ ### [News](docs/sdks/newssdk/README.md)
468
+
469
+ * [get_news](docs/sdks/newssdk/README.md#get_news) - Get Market News
470
+ * [get_news_sentiment](docs/sdks/newssdk/README.md#get_news_sentiment) - Get News Sentiment
471
+ * [get_news_by_id](docs/sdks/newssdk/README.md#get_news_by_id) - Get News by ID
472
+
473
+ ### [Options](docs/sdks/options/README.md)
474
+
475
+ * [get_options_activity](docs/sdks/options/README.md#get_options_activity) - Get Options Activity
476
+ * [get_option_last_trade](docs/sdks/options/README.md#get_option_last_trade) - Get Options Last Trade
477
+ * [get_option_open_close](docs/sdks/options/README.md#get_option_open_close) - Get Option Open/Close Data
478
+ * [get_option_previous_day](docs/sdks/options/README.md#get_option_previous_day) - Get Previous Day Option Data
479
+ * [get_option_quotes](docs/sdks/options/README.md#get_option_quotes) - Get Options Quotes
480
+ * [get_option_chain_snapshot](docs/sdks/options/README.md#get_option_chain_snapshot) - Get option chain snapshot
481
+ * [get_option_contract_snapshot](docs/sdks/options/README.md#get_option_contract_snapshot) - Get option contract snapshot
482
+ * [get_option_trades](docs/sdks/options/README.md#get_option_trades) - Get Options Trades
483
+ * [get_options_unusual_activity](docs/sdks/options/README.md#get_options_unusual_activity) - Get Options Unusual Activity by Symbol
484
+ * [list_option_contracts](docs/sdks/options/README.md#list_option_contracts) - Get Options Contract Symbols
485
+ * [list_option_expiry_dates](docs/sdks/options/README.md#list_option_expiry_dates) - Get Options Expiry Dates
486
+
487
+ ### [Orders](docs/sdks/orders/README.md)
488
+
489
+ * [place_order](docs/sdks/orders/README.md#place_order) - Place an order
490
+ * [cancel_order](docs/sdks/orders/README.md#cancel_order) - Cancel an order
491
+ * [preview_order](docs/sdks/orders/README.md#preview_order) - Preview order
492
+ * [replace_order](docs/sdks/orders/README.md#replace_order) - Replace an order
493
+ * [list_active_orders](docs/sdks/orders/README.md#list_active_orders) - List active orders (v2)
494
+ * [list_order_history](docs/sdks/orders/README.md#list_order_history) - List order history (v2)
495
+
496
+ ### [Ownership](docs/sdks/ownership/README.md)
497
+
498
+ * [get_institutional_ownership](docs/sdks/ownership/README.md#get_institutional_ownership) - Get Institutional Ownership
499
+ * [get_institutional_portfolio](docs/sdks/ownership/README.md#get_institutional_portfolio) - Get Institutional Portfolio
500
+ * [get_ownership_data](docs/sdks/ownership/README.md#get_ownership_data) - Get Company Ownership Data
501
+ * [get_fund_ownership](docs/sdks/ownership/README.md#get_fund_ownership) - Get Fund Ownership Data
502
+ * [get_insider_transactions](docs/sdks/ownership/README.md#get_insider_transactions) - Get Insider Transactions
503
+
504
+ ### [Predictions.History](docs/sdks/history/README.md)
505
+
506
+ * [get_history](docs/sdks/history/README.md#get_history) - Get historical ticks for a single symbol
507
+ * [get_history_batch](docs/sdks/history/README.md#get_history_batch) - Batch historical ticks for up to 5 symbols
508
+
509
+ ### [Predictions.Markets](docs/sdks/markets/README.md)
510
+
511
+ * [get_base_event](docs/sdks/markets/README.md#get_base_event) - Get a base event with its events and each event's contracts
512
+ * [list_categories](docs/sdks/markets/README.md#list_categories) - List prediction market categories
513
+ * [get_event_contracts](docs/sdks/markets/README.md#get_event_contracts) - Get an event and all contracts under it
514
+ * [search](docs/sdks/markets/README.md#search) - Search contracts, events or base events
515
+
516
+ ### [Predictions.Orders](docs/sdks/predictionsorders/README.md)
517
+
518
+ * [list_prediction_orders](docs/sdks/predictionsorders/README.md#list_prediction_orders) - List prediction orders
519
+ * [place_prediction_order](docs/sdks/predictionsorders/README.md#place_prediction_order) - Place prediction order
520
+ * [get_prediction_order](docs/sdks/predictionsorders/README.md#get_prediction_order) - Get prediction order
521
+
522
+ ### [Signals](docs/sdks/signals/README.md)
523
+
524
+ * [get_bull_bear_analysis](docs/sdks/signals/README.md#get_bull_bear_analysis) - Get Bull & Bear Analysis
525
+
526
+ ### [Stocks](docs/sdks/stocks/README.md)
527
+
528
+ * [get_stock_aggregates](docs/sdks/stocks/README.md#get_stock_aggregates) - Get Aggregate Bars
529
+ * [get_daily_market_summary](docs/sdks/stocks/README.md#get_daily_market_summary) - Get Daily Market Summary
530
+ * [get_stock_last_quote](docs/sdks/stocks/README.md#get_stock_last_quote) - Get Last Quote (NBBO)
531
+ * [get_stock_last_trade](docs/sdks/stocks/README.md#get_stock_last_trade) - Get Last Trade
532
+ * [get_stock_open_close](docs/sdks/stocks/README.md#get_stock_open_close) - Get Daily Ticker Summary
533
+ * [get_stock_previous_day](docs/sdks/stocks/README.md#get_stock_previous_day) - Get Previous Day Bar
534
+ * [get_stock_quotes](docs/sdks/stocks/README.md#get_stock_quotes) - Get Stock Quotes (NBBO)
535
+ * [get_stock_snapshots](docs/sdks/stocks/README.md#get_stock_snapshots) - Get Full Market Snapshot
536
+ * [get_stock_trades](docs/sdks/stocks/README.md#get_stock_trades) - Get Stock Trades
537
+ * [get_unified_snapshot](docs/sdks/stocks/README.md#get_unified_snapshot) - Get Unified Snapshot
538
+
539
+ ### [TechnicalAnalysis](docs/sdks/technicalanalysissdk/README.md)
540
+
541
+ * [get_technical_indicator](docs/sdks/technicalanalysissdk/README.md#get_technical_indicator) - Get Technical Indicator Data
542
+ * [get_technical_patterns](docs/sdks/technicalanalysissdk/README.md#get_technical_patterns) - Get Technical Patterns
543
+ * [get_support_resistance_levels](docs/sdks/technicalanalysissdk/README.md#get_support_resistance_levels) - Get Support & Resistance Levels
544
+ * [get_aggregate_technical_indicators](docs/sdks/technicalanalysissdk/README.md#get_aggregate_technical_indicators) - Get Aggregate Technical Indicators
545
+
546
+ ### [Watchlist](docs/sdks/watchlistsdk/README.md)
547
+
548
+ * [list](docs/sdks/watchlistsdk/README.md#list) - List Watchlists
549
+ * [create](docs/sdks/watchlistsdk/README.md#create) - Create Watchlist
550
+ * [replace_all](docs/sdks/watchlistsdk/README.md#replace_all) - Replace All Watchlists
551
+ * [delete](docs/sdks/watchlistsdk/README.md#delete) - Delete Watchlist
552
+ * [get](docs/sdks/watchlistsdk/README.md#get) - Get Watchlist
553
+ * [update](docs/sdks/watchlistsdk/README.md#update) - Update Watchlist
554
+
555
+ </details>
556
+ <!-- End Available Resources and Operations [operations] -->
557
+
558
+ <!-- Start Pagination [pagination] -->
559
+ ## Pagination
560
+
561
+ Some of the endpoints in this SDK support pagination. To use pagination, you make your SDK calls as usual, but the
562
+ returned response object will have a `Next` method that can be called to pull down the next group of results. If the
563
+ return value of `Next` is `None`, then there are no more pages to be fetched.
564
+
565
+ Here's an example of one such pagination call:
566
+ ```python
567
+ from finance_dev import FinanceDev, models
568
+
569
+
570
+ with FinanceDev(
571
+ security=models.Security(
572
+ client_id="<YOUR_CLIENT_ID_HERE>",
573
+ client_secret="<YOUR_CLIENT_SECRET_HERE>",
574
+ ),
575
+ ) as fd_client:
576
+
577
+ res = fd_client.analytics.get_analyst_insights()
578
+
579
+ while res is not None:
580
+ # Handle items
581
+
582
+ res = res.next()
583
+
584
+ ```
585
+ <!-- End Pagination [pagination] -->
586
+
587
+ <!-- Start Retries [retries] -->
588
+ ## Retries
589
+
590
+ Some of the endpoints in this SDK support retries. If you use the SDK without any configuration, it will fall back to the default retry strategy provided by the API. However, the default retry strategy can be overridden on a per-operation basis, or across the entire SDK.
591
+
592
+ To change the default retry strategy for a single API call, simply provide a `RetryConfig` object to the call:
593
+ ```python
594
+ from finance_dev import FinanceDev, models
595
+ from finance_dev.utils import BackoffStrategy, RetryConfig
596
+
597
+
598
+ with FinanceDev(
599
+ security=models.Security(
600
+ client_id="<YOUR_CLIENT_ID_HERE>",
601
+ client_secret="<YOUR_CLIENT_SECRET_HERE>",
602
+ ),
603
+ ) as fd_client:
604
+
605
+ res = fd_client.accounts.get_account_positions(id="TEST-ACCOUNT-001",
606
+ RetryConfig("backoff", BackoffStrategy(1, 50, 1.1, 100), False))
607
+
608
+ assert res.get_positions_response is not None
609
+
610
+ # Handle response
611
+ print(res.get_positions_response)
612
+
613
+ ```
614
+
615
+ If you'd like to override the default retry strategy for all operations that support retries, you can use the `retry_config` optional parameter when initializing the SDK:
616
+ ```python
617
+ from finance_dev import FinanceDev, models
618
+ from finance_dev.utils import BackoffStrategy, RetryConfig
619
+
620
+
621
+ with FinanceDev(
622
+ retry_config=RetryConfig("backoff", BackoffStrategy(1, 50, 1.1, 100), False),
623
+ security=models.Security(
624
+ client_id="<YOUR_CLIENT_ID_HERE>",
625
+ client_secret="<YOUR_CLIENT_SECRET_HERE>",
626
+ ),
627
+ ) as fd_client:
628
+
629
+ res = fd_client.accounts.get_account_positions(id="TEST-ACCOUNT-001")
630
+
631
+ assert res.get_positions_response is not None
632
+
633
+ # Handle response
634
+ print(res.get_positions_response)
635
+
636
+ ```
637
+ <!-- End Retries [retries] -->
638
+
639
+ <!-- Start Error Handling [errors] -->
640
+ ## Error Handling
641
+
642
+ [`FinanceDevAPIError`](./src/finance_dev/errors/financedevapierror.py) is the base class for all HTTP error responses. It has the following properties:
643
+
644
+ | Property | Type | Description |
645
+ | ------------------ | ---------------- | --------------------------------------------------------------------------------------- |
646
+ | `err.message` | `str` | Error message |
647
+ | `err.status_code` | `int` | HTTP response status code eg `404` |
648
+ | `err.headers` | `httpx.Headers` | HTTP response headers |
649
+ | `err.body` | `str` | HTTP body. Can be empty string if no body is returned. |
650
+ | `err.raw_response` | `httpx.Response` | Raw HTTP response |
651
+ | `err.data` | | Optional. Some errors may contain structured data. [See Error Classes](#error-classes). |
652
+
653
+ ### Example
654
+ ```python
655
+ from finance_dev import FinanceDev, errors, models
656
+
657
+
658
+ with FinanceDev(
659
+ security=models.Security(
660
+ client_id="<YOUR_CLIENT_ID_HERE>",
661
+ client_secret="<YOUR_CLIENT_SECRET_HERE>",
662
+ ),
663
+ ) as fd_client:
664
+ res = None
665
+ try:
666
+
667
+ res = fd_client.accounts.get_account_positions(id="TEST-ACCOUNT-001")
668
+
669
+ assert res.get_positions_response is not None
670
+
671
+ # Handle response
672
+ print(res.get_positions_response)
673
+
674
+
675
+ except errors.FinanceDevAPIError as e:
676
+ # The base class for HTTP error responses
677
+ print(e.message)
678
+ print(e.status_code)
679
+ print(e.body)
680
+ print(e.headers)
681
+ print(e.raw_response)
682
+
683
+ # Depending on the method different errors may be thrown
684
+ if isinstance(e, errors.AuthenticationErrorEnvelope):
685
+ print(e.data.error) # Optional[models.AuthenticationErrorDetail]
686
+ print(e.data.meta) # Optional[Dict[str, Any]]
687
+ print(e.data.http_meta) # models.HTTPMetadata
688
+ ```
689
+
690
+ ### Error Classes
691
+ **Primary errors:**
692
+ * [`FinanceDevAPIError`](./src/finance_dev/errors/financedevapierror.py): The base class for HTTP error responses.
693
+ * [`ErrorResponse`](./src/finance_dev/errors/errorresponse.py): Flat error body: an `error` string, with optional structured `codes` and additional `metadata`. *
694
+ * [`AuthenticationErrorEnvelope`](./src/finance_dev/errors/authenticationerrorenvelope.py): JSON envelope where `error` is a nested object (`type`, `code`, `message`, …). Many services use this shape for 400, 401, 403, 404, and 5xx when using the shared HTTP error format. *
695
+
696
+ <details><summary>Less common errors (7)</summary>
697
+
698
+ <br />
699
+
700
+ **Network errors:**
701
+ * [`httpx.RequestError`](https://www.python-httpx.org/exceptions/#httpx.RequestError): Base class for request errors.
702
+ * [`httpx.ConnectError`](https://www.python-httpx.org/exceptions/#httpx.ConnectError): HTTP client was unable to make a request to a server.
703
+ * [`httpx.TimeoutException`](https://www.python-httpx.org/exceptions/#httpx.TimeoutException): HTTP request timed out.
704
+
705
+
706
+ **Inherit from [`FinanceDevAPIError`](./src/finance_dev/errors/financedevapierror.py)**:
707
+ * [`ErrorEnvelope`](./src/finance_dev/errors/errorenvelope.py): Prediction-market error envelope. Returned by historical-data and prediction-market reference endpoints on 400/404/500/502. Applicable to 6 of 151 methods.*
708
+ * [`PredOrdersErrorEnvelope`](./src/finance_dev/errors/predorderserrorenvelope.py): Invalid request. `INVALID_ORDER` carries the reason in `message`; on placement this includes refusals from order entry and the venue (price, tick size, account setup). Applicable to 3 of 151 methods.*
709
+ * [`ResponseValidationError`](./src/finance_dev/errors/responsevalidationerror.py): Type mismatch between the response data and the expected Pydantic model. Provides access to the Pydantic validation error via the `cause` attribute.
710
+
711
+ </details>
712
+
713
+ \* Check [the method documentation](#available-resources-and-operations) to see if the error is applicable.
714
+ <!-- End Error Handling [errors] -->
715
+
716
+ <!-- Start Server Selection [server] -->
717
+ ## Server Selection
718
+
719
+ ### Override Server URL Per-Client
720
+
721
+ The default server can be overridden globally by passing a URL to the `server_url: str` optional parameter when initializing the SDK client instance. For example:
722
+ ```python
723
+ from finance_dev import FinanceDev, models
724
+
725
+
726
+ with FinanceDev(
727
+ server_url="https://api.aries.com",
728
+ security=models.Security(
729
+ client_id="<YOUR_CLIENT_ID_HERE>",
730
+ client_secret="<YOUR_CLIENT_SECRET_HERE>",
731
+ ),
732
+ ) as fd_client:
733
+
734
+ res = fd_client.accounts.get_account_positions(id="TEST-ACCOUNT-001")
735
+
736
+ assert res.get_positions_response is not None
737
+
738
+ # Handle response
739
+ print(res.get_positions_response)
740
+
741
+ ```
742
+ <!-- End Server Selection [server] -->
743
+
744
+ <!-- Start Custom HTTP Client [http-client] -->
745
+ ## Custom HTTP Client
746
+
747
+ The Python SDK makes API calls using the [httpx](https://www.python-httpx.org/) HTTP library. In order to provide a convenient way to configure timeouts, cookies, proxies, custom headers, and other low-level configuration, you can initialize the SDK client with your own HTTP client instance.
748
+ Depending on whether you are using the sync or async version of the SDK, you can pass an instance of `HttpClient` or `AsyncHttpClient` respectively, which are Protocol's ensuring that the client has the necessary methods to make API calls.
749
+ This allows you to wrap the client with your own custom logic, such as adding custom headers, logging, or error handling, or you can just pass an instance of `httpx.Client` or `httpx.AsyncClient` directly.
750
+
751
+ For example, you could specify a header for every request that this sdk makes as follows:
752
+ ```python
753
+ from finance_dev import FinanceDev
754
+ import httpx
755
+
756
+ http_client = httpx.Client(headers={"x-custom-header": "someValue"})
757
+ s = FinanceDev(client=http_client)
758
+ ```
759
+
760
+ or you could wrap the client with your own custom logic:
761
+ ```python
762
+ from finance_dev import FinanceDev
763
+ from finance_dev.httpclient import AsyncHttpClient
764
+ import httpx
765
+
766
+ class CustomClient(AsyncHttpClient):
767
+ client: AsyncHttpClient
768
+
769
+ def __init__(self, client: AsyncHttpClient):
770
+ self.client = client
771
+
772
+ async def send(
773
+ self,
774
+ request: httpx.Request,
775
+ *,
776
+ stream: bool = False,
777
+ auth: Union[
778
+ httpx._types.AuthTypes, httpx._client.UseClientDefault, None
779
+ ] = httpx.USE_CLIENT_DEFAULT,
780
+ follow_redirects: Union[
781
+ bool, httpx._client.UseClientDefault
782
+ ] = httpx.USE_CLIENT_DEFAULT,
783
+ ) -> httpx.Response:
784
+ request.headers["Client-Level-Header"] = "added by client"
785
+
786
+ return await self.client.send(
787
+ request, stream=stream, auth=auth, follow_redirects=follow_redirects
788
+ )
789
+
790
+ def build_request(
791
+ self,
792
+ method: str,
793
+ url: httpx._types.URLTypes,
794
+ *,
795
+ content: Optional[httpx._types.RequestContent] = None,
796
+ data: Optional[httpx._types.RequestData] = None,
797
+ files: Optional[httpx._types.RequestFiles] = None,
798
+ json: Optional[Any] = None,
799
+ params: Optional[httpx._types.QueryParamTypes] = None,
800
+ headers: Optional[httpx._types.HeaderTypes] = None,
801
+ cookies: Optional[httpx._types.CookieTypes] = None,
802
+ timeout: Union[
803
+ httpx._types.TimeoutTypes, httpx._client.UseClientDefault
804
+ ] = httpx.USE_CLIENT_DEFAULT,
805
+ extensions: Optional[httpx._types.RequestExtensions] = None,
806
+ ) -> httpx.Request:
807
+ return self.client.build_request(
808
+ method,
809
+ url,
810
+ content=content,
811
+ data=data,
812
+ files=files,
813
+ json=json,
814
+ params=params,
815
+ headers=headers,
816
+ cookies=cookies,
817
+ timeout=timeout,
818
+ extensions=extensions,
819
+ )
820
+
821
+ s = FinanceDev(async_client=CustomClient(httpx.AsyncClient()))
822
+ ```
823
+ ### httpx2 (Pydantic's httpx fork)
824
+
825
+ [httpx2](https://httpx2.pydantic.dev/) is Pydantic's maintained fork of `httpx`. To run this SDK on httpx2, call `alias_httpx()` at your program's entry point, before importing the SDK, so every `import httpx` — including the ones inside the SDK — resolves to `httpx2`:
826
+ ```python
827
+ import httpx2
828
+
829
+ httpx2.alias_httpx()
830
+
831
+ from finance_dev import FinanceDev
832
+
833
+ s = FinanceDev()
834
+ ```
835
+
836
+ An SDK can also be generated against httpx2 directly, so it depends on the fork instead of `httpx`, by setting `python.httpClientLibrary: httpx2` in `gen.yaml`.
837
+ <!-- End Custom HTTP Client [http-client] -->
838
+
839
+ <!-- Start Resource Management [resource-management] -->
840
+ ## Resource Management
841
+
842
+ The `FinanceDev` class implements the context manager protocol and registers a finalizer function to close the underlying sync and async HTTPX clients it uses under the hood. This will close HTTP connections, release memory and free up other resources held by the SDK. In short-lived Python programs and notebooks that make a few SDK method calls, resource management may not be a concern. However, in longer-lived programs, it is beneficial to create a single SDK instance via a [context manager][context-manager] and reuse it across the application.
843
+
844
+ [context-manager]: https://docs.python.org/3/reference/datamodel.html#context-managers
845
+
846
+ ```python
847
+ from finance_dev import FinanceDev, models
848
+ def main():
849
+
850
+ with FinanceDev(
851
+ security=models.Security(
852
+ client_id="<YOUR_CLIENT_ID_HERE>",
853
+ client_secret="<YOUR_CLIENT_SECRET_HERE>",
854
+ ),
855
+ ) as fd_client:
856
+ # Rest of application here...
857
+
858
+
859
+ # Or when using async:
860
+ async def amain():
861
+
862
+ async with FinanceDev(
863
+ security=models.Security(
864
+ client_id="<YOUR_CLIENT_ID_HERE>",
865
+ client_secret="<YOUR_CLIENT_SECRET_HERE>",
866
+ ),
867
+ ) as fd_client:
868
+ # Rest of application here...
869
+ ```
870
+ <!-- End Resource Management [resource-management] -->
871
+
872
+ <!-- Start Debugging [debug] -->
873
+ ## Debugging
874
+
875
+ You can setup your SDK to emit debug logs for SDK requests and responses.
876
+
877
+ You can pass your own logger class directly into your SDK.
878
+ ```python
879
+ from finance_dev import FinanceDev
880
+ import logging
881
+
882
+ logging.basicConfig(level=logging.DEBUG)
883
+ s = FinanceDev(debug_logger=logging.getLogger("finance_dev"))
884
+ ```
885
+ <!-- End Debugging [debug] -->
886
+
887
+ <!-- Placeholder for Future Speakeasy SDK Sections -->
888
+
889
+ # WebSocket streaming
890
+
891
+ `FinanceDev` exposes market, chart, and account WebSocket clients under
892
+ `sdk.websocket`. Connections authenticate on entry and support both sync and
893
+ async context managers. See the [WebSocket guide](docs/websocket/README.md)
894
+ for examples, token providers, event semantics, and reconnect behavior.
895
+
896
+ Market field selectors use `"*"` for all fields. To combine Time & Sales with
897
+ quotes and trades, set `time_and_sales=True`, `quote_fields="*"`, and
898
+ `trade_fields="*"`; Time & Sales alone selects only that stream.
899
+
900
+ # Development
901
+
902
+ ## Maturity
903
+
904
+ This SDK is in beta, and there may be breaking changes between versions without a major version update. Therefore, we recommend pinning usage
905
+ to a specific package version. This way, you can install the same version each time without breaking changes unless you are intentionally
906
+ looking for the latest version.
907
+
908
+ ## Contributions
909
+
910
+ While we value open-source contributions to this SDK, this library is generated programmatically. Any manual changes added to internal files will be overwritten on the next generation.
911
+ We look forward to hearing your feedback. Feel free to open a PR or an issue with a proof of concept and we'll do our best to include it in a future release.
912
+
913
+ ### SDK Created by [Speakeasy](https://www.speakeasy.com/?utm_source=finance-dev&utm_campaign=python)