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,222 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: acef56f46f01
3
+
4
+ from __future__ import annotations
5
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
6
+ import pydantic
7
+ from pydantic import model_serializer
8
+ from typing import List, Optional
9
+ from typing_extensions import Annotated, NotRequired, TypedDict
10
+
11
+
12
+ class UsaSpendingResponseDataTypedDict(TypedDict):
13
+ action_date: NotRequired[str]
14
+ r"""Date of the award action, as returned by the provider."""
15
+ award_description: NotRequired[str]
16
+ r"""Description of the award."""
17
+ awarding_agency_name: NotRequired[str]
18
+ r"""Name of the awarding agency."""
19
+ awarding_office_name: NotRequired[str]
20
+ r"""Name of the awarding office."""
21
+ awarding_sub_agency_name: NotRequired[str]
22
+ r"""Name of the awarding sub-agency."""
23
+ country: NotRequired[str]
24
+ r"""Recipient's country."""
25
+ naics_code: NotRequired[str]
26
+ r"""North American Industry Classification System (NAICS) code of the award."""
27
+ performance_city: NotRequired[str]
28
+ r"""City where the work is performed."""
29
+ performance_congressional_district: NotRequired[str]
30
+ r"""Congressional district where the work is performed."""
31
+ performance_country: NotRequired[str]
32
+ r"""Country where the work is performed."""
33
+ performance_county: NotRequired[str]
34
+ r"""County where the work is performed."""
35
+ performance_end_date: NotRequired[str]
36
+ r"""End date of the performance period, as returned by the provider."""
37
+ performance_start_date: NotRequired[str]
38
+ r"""Start date of the performance period, as returned by the provider."""
39
+ performance_state: NotRequired[str]
40
+ r"""State where the work is performed."""
41
+ performance_zip_code: NotRequired[str]
42
+ r"""Zip code where the work is performed."""
43
+ permalink: NotRequired[str]
44
+ r"""Permalink to the award record."""
45
+ recipient_name: NotRequired[str]
46
+ r"""Name of the award recipient company."""
47
+ recipient_parent_name: NotRequired[str]
48
+ r"""Name of the recipient's parent company."""
49
+ symbol: NotRequired[str]
50
+ r"""Company ticker symbol."""
51
+ total_value: NotRequired[float]
52
+ r"""Total value of the award."""
53
+
54
+
55
+ class UsaSpendingResponseData(BaseModel):
56
+ action_date: Annotated[Optional[str], pydantic.Field(alias="actionDate")] = None
57
+ r"""Date of the award action, as returned by the provider."""
58
+
59
+ award_description: Annotated[
60
+ Optional[str], pydantic.Field(alias="awardDescription")
61
+ ] = None
62
+ r"""Description of the award."""
63
+
64
+ awarding_agency_name: Annotated[
65
+ Optional[str], pydantic.Field(alias="awardingAgencyName")
66
+ ] = None
67
+ r"""Name of the awarding agency."""
68
+
69
+ awarding_office_name: Annotated[
70
+ Optional[str], pydantic.Field(alias="awardingOfficeName")
71
+ ] = None
72
+ r"""Name of the awarding office."""
73
+
74
+ awarding_sub_agency_name: Annotated[
75
+ Optional[str], pydantic.Field(alias="awardingSubAgencyName")
76
+ ] = None
77
+ r"""Name of the awarding sub-agency."""
78
+
79
+ country: Optional[str] = None
80
+ r"""Recipient's country."""
81
+
82
+ naics_code: Annotated[Optional[str], pydantic.Field(alias="naicsCode")] = None
83
+ r"""North American Industry Classification System (NAICS) code of the award."""
84
+
85
+ performance_city: Annotated[
86
+ Optional[str], pydantic.Field(alias="performanceCity")
87
+ ] = None
88
+ r"""City where the work is performed."""
89
+
90
+ performance_congressional_district: Annotated[
91
+ Optional[str], pydantic.Field(alias="performanceCongressionalDistrict")
92
+ ] = None
93
+ r"""Congressional district where the work is performed."""
94
+
95
+ performance_country: Annotated[
96
+ Optional[str], pydantic.Field(alias="performanceCountry")
97
+ ] = None
98
+ r"""Country where the work is performed."""
99
+
100
+ performance_county: Annotated[
101
+ Optional[str], pydantic.Field(alias="performanceCounty")
102
+ ] = None
103
+ r"""County where the work is performed."""
104
+
105
+ performance_end_date: Annotated[
106
+ Optional[str], pydantic.Field(alias="performanceEndDate")
107
+ ] = None
108
+ r"""End date of the performance period, as returned by the provider."""
109
+
110
+ performance_start_date: Annotated[
111
+ Optional[str], pydantic.Field(alias="performanceStartDate")
112
+ ] = None
113
+ r"""Start date of the performance period, as returned by the provider."""
114
+
115
+ performance_state: Annotated[
116
+ Optional[str], pydantic.Field(alias="performanceState")
117
+ ] = None
118
+ r"""State where the work is performed."""
119
+
120
+ performance_zip_code: Annotated[
121
+ Optional[str], pydantic.Field(alias="performanceZipCode")
122
+ ] = None
123
+ r"""Zip code where the work is performed."""
124
+
125
+ permalink: Optional[str] = None
126
+ r"""Permalink to the award record."""
127
+
128
+ recipient_name: Annotated[Optional[str], pydantic.Field(alias="recipientName")] = (
129
+ None
130
+ )
131
+ r"""Name of the award recipient company."""
132
+
133
+ recipient_parent_name: Annotated[
134
+ Optional[str], pydantic.Field(alias="recipientParentName")
135
+ ] = None
136
+ r"""Name of the recipient's parent company."""
137
+
138
+ symbol: Optional[str] = None
139
+ r"""Company ticker symbol."""
140
+
141
+ total_value: Annotated[Optional[float], pydantic.Field(alias="totalValue")] = None
142
+ r"""Total value of the award."""
143
+
144
+ @model_serializer(mode="wrap")
145
+ def serialize_model(self, handler):
146
+ optional_fields = set(
147
+ [
148
+ "actionDate",
149
+ "awardDescription",
150
+ "awardingAgencyName",
151
+ "awardingOfficeName",
152
+ "awardingSubAgencyName",
153
+ "country",
154
+ "naicsCode",
155
+ "performanceCity",
156
+ "performanceCongressionalDistrict",
157
+ "performanceCountry",
158
+ "performanceCounty",
159
+ "performanceEndDate",
160
+ "performanceStartDate",
161
+ "performanceState",
162
+ "performanceZipCode",
163
+ "permalink",
164
+ "recipientName",
165
+ "recipientParentName",
166
+ "symbol",
167
+ "totalValue",
168
+ ]
169
+ )
170
+ serialized = handler(self)
171
+ m = {}
172
+
173
+ for n, f in type(self).model_fields.items():
174
+ k = f.alias or n
175
+ val = serialized.get(k, serialized.get(n))
176
+
177
+ if val != UNSET_SENTINEL:
178
+ if val is not None or k not in optional_fields:
179
+ m[k] = val
180
+
181
+ return m
182
+
183
+
184
+ class UsaSpendingResponseTypedDict(TypedDict):
185
+ r"""US government contract awards to a company, as provided by Finnhub."""
186
+
187
+ data: NotRequired[List[UsaSpendingResponseDataTypedDict]]
188
+ r"""Government spending (award) records for the symbol."""
189
+ symbol: NotRequired[str]
190
+ r"""Company ticker symbol."""
191
+
192
+
193
+ class UsaSpendingResponse(BaseModel):
194
+ r"""US government contract awards to a company, as provided by Finnhub."""
195
+
196
+ data: Optional[List[UsaSpendingResponseData]] = None
197
+ r"""Government spending (award) records for the symbol."""
198
+
199
+ symbol: Optional[str] = None
200
+ r"""Company ticker symbol."""
201
+
202
+ @model_serializer(mode="wrap")
203
+ def serialize_model(self, handler):
204
+ optional_fields = set(["data", "symbol"])
205
+ serialized = handler(self)
206
+ m = {}
207
+
208
+ for n, f in type(self).model_fields.items():
209
+ k = f.alias or n
210
+ val = serialized.get(k, serialized.get(n))
211
+
212
+ if val != UNSET_SENTINEL:
213
+ if val is not None or k not in optional_fields:
214
+ m[k] = val
215
+
216
+ return m
217
+
218
+
219
+ try:
220
+ UsaSpendingResponseData.model_rebuild()
221
+ except NameError:
222
+ pass
@@ -0,0 +1,134 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: d777f4de7105
3
+
4
+ from __future__ import annotations
5
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
6
+ import pydantic
7
+ from pydantic import model_serializer
8
+ from typing import List, Optional
9
+ from typing_extensions import Annotated, NotRequired, TypedDict
10
+
11
+
12
+ class UsptoPatentsResponseDataTypedDict(TypedDict):
13
+ application_number: NotRequired[str]
14
+ r"""Patent application number."""
15
+ company_filing_name: NotRequired[List[str]]
16
+ r"""Names of the companies listed on the patent."""
17
+ description: NotRequired[str]
18
+ r"""Description of the patent."""
19
+ filing_date: NotRequired[str]
20
+ r"""Date the patent was filed, as returned by the provider."""
21
+ filing_status: NotRequired[str]
22
+ r"""Filing status of the patent."""
23
+ patent_number: NotRequired[str]
24
+ r"""Patent number."""
25
+ patent_type: NotRequired[str]
26
+ r"""Type of patent."""
27
+ publication_date: NotRequired[str]
28
+ r"""Date the patent was published, as returned by the provider."""
29
+ url: NotRequired[str]
30
+ r"""URL of the original patent document."""
31
+
32
+
33
+ class UsptoPatentsResponseData(BaseModel):
34
+ application_number: Annotated[
35
+ Optional[str], pydantic.Field(alias="applicationNumber")
36
+ ] = None
37
+ r"""Patent application number."""
38
+
39
+ company_filing_name: Annotated[
40
+ Optional[List[str]], pydantic.Field(alias="companyFilingName")
41
+ ] = None
42
+ r"""Names of the companies listed on the patent."""
43
+
44
+ description: Optional[str] = None
45
+ r"""Description of the patent."""
46
+
47
+ filing_date: Annotated[Optional[str], pydantic.Field(alias="filingDate")] = None
48
+ r"""Date the patent was filed, as returned by the provider."""
49
+
50
+ filing_status: Annotated[Optional[str], pydantic.Field(alias="filingStatus")] = None
51
+ r"""Filing status of the patent."""
52
+
53
+ patent_number: Annotated[Optional[str], pydantic.Field(alias="patentNumber")] = None
54
+ r"""Patent number."""
55
+
56
+ patent_type: Annotated[Optional[str], pydantic.Field(alias="patentType")] = None
57
+ r"""Type of patent."""
58
+
59
+ publication_date: Annotated[
60
+ Optional[str], pydantic.Field(alias="publicationDate")
61
+ ] = None
62
+ r"""Date the patent was published, as returned by the provider."""
63
+
64
+ url: Optional[str] = None
65
+ r"""URL of the original patent document."""
66
+
67
+ @model_serializer(mode="wrap")
68
+ def serialize_model(self, handler):
69
+ optional_fields = set(
70
+ [
71
+ "applicationNumber",
72
+ "companyFilingName",
73
+ "description",
74
+ "filingDate",
75
+ "filingStatus",
76
+ "patentNumber",
77
+ "patentType",
78
+ "publicationDate",
79
+ "url",
80
+ ]
81
+ )
82
+ serialized = handler(self)
83
+ m = {}
84
+
85
+ for n, f in type(self).model_fields.items():
86
+ k = f.alias or n
87
+ val = serialized.get(k, serialized.get(n))
88
+
89
+ if val != UNSET_SENTINEL:
90
+ if val is not None or k not in optional_fields:
91
+ m[k] = val
92
+
93
+ return m
94
+
95
+
96
+ class UsptoPatentsResponseTypedDict(TypedDict):
97
+ r"""USPTO patent filings associated with a company, as provided by Finnhub."""
98
+
99
+ data: NotRequired[List[UsptoPatentsResponseDataTypedDict]]
100
+ r"""Patent records for the symbol."""
101
+ symbol: NotRequired[str]
102
+ r"""Company ticker symbol."""
103
+
104
+
105
+ class UsptoPatentsResponse(BaseModel):
106
+ r"""USPTO patent filings associated with a company, as provided by Finnhub."""
107
+
108
+ data: Optional[List[UsptoPatentsResponseData]] = None
109
+ r"""Patent records for the symbol."""
110
+
111
+ symbol: Optional[str] = None
112
+ r"""Company ticker symbol."""
113
+
114
+ @model_serializer(mode="wrap")
115
+ def serialize_model(self, handler):
116
+ optional_fields = set(["data", "symbol"])
117
+ serialized = handler(self)
118
+ m = {}
119
+
120
+ for n, f in type(self).model_fields.items():
121
+ k = f.alias or n
122
+ val = serialized.get(k, serialized.get(n))
123
+
124
+ if val != UNSET_SENTINEL:
125
+ if val is not None or k not in optional_fields:
126
+ m[k] = val
127
+
128
+ return m
129
+
130
+
131
+ try:
132
+ UsptoPatentsResponseData.model_rebuild()
133
+ except NameError:
134
+ pass
@@ -0,0 +1,228 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 6e5956a7ab1c
3
+
4
+ from __future__ import annotations
5
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
6
+ import pydantic
7
+ from pydantic import model_serializer
8
+ from typing import List, Optional
9
+ from typing_extensions import Annotated, NotRequired, TypedDict
10
+
11
+
12
+ class VisaApplicationsResponseDataTypedDict(TypedDict):
13
+ begin_date: NotRequired[str]
14
+ r"""Job start date, as returned by the provider."""
15
+ case_number: NotRequired[str]
16
+ r"""Case number of the application."""
17
+ case_status: NotRequired[str]
18
+ r"""Status of the case."""
19
+ employer_name: NotRequired[str]
20
+ r"""Name of the employer."""
21
+ end_date: NotRequired[str]
22
+ r"""Job end date, as returned by the provider."""
23
+ full_time_position: NotRequired[str]
24
+ r"""Flag indicating whether the position is full-time, as returned by the provider."""
25
+ h1b_dependent: NotRequired[str]
26
+ r"""Flag indicating whether the employer is H-1B dependent, as returned by the provider."""
27
+ job_title: NotRequired[str]
28
+ r"""Job title of the position."""
29
+ quarter: NotRequired[int]
30
+ r"""Quarter of the application."""
31
+ received_date: NotRequired[str]
32
+ r"""Date the application was received, as returned by the provider."""
33
+ soc_code: NotRequired[str]
34
+ r"""Standard Occupational Classification (SOC) code of the position."""
35
+ symbol: NotRequired[str]
36
+ r"""Company ticker symbol."""
37
+ visa_class: NotRequired[str]
38
+ r"""Visa class."""
39
+ wage_level: NotRequired[str]
40
+ r"""Wage level of the position."""
41
+ wage_range_from: NotRequired[float]
42
+ r"""Lower bound of the offered wage range."""
43
+ wage_range_to: NotRequired[float]
44
+ r"""Upper bound of the offered wage range."""
45
+ wage_unit_of_pay: NotRequired[str]
46
+ r"""Unit of pay that the wage range is expressed in."""
47
+ worksite_address: NotRequired[str]
48
+ r"""Worksite street address."""
49
+ worksite_city: NotRequired[str]
50
+ r"""Worksite city."""
51
+ worksite_county: NotRequired[str]
52
+ r"""Worksite county."""
53
+ worksite_postal_code: NotRequired[str]
54
+ r"""Worksite postal code."""
55
+ worksite_state: NotRequired[str]
56
+ r"""Worksite state."""
57
+ year: NotRequired[int]
58
+ r"""Year of the application."""
59
+
60
+
61
+ class VisaApplicationsResponseData(BaseModel):
62
+ begin_date: Annotated[Optional[str], pydantic.Field(alias="beginDate")] = None
63
+ r"""Job start date, as returned by the provider."""
64
+
65
+ case_number: Annotated[Optional[str], pydantic.Field(alias="caseNumber")] = None
66
+ r"""Case number of the application."""
67
+
68
+ case_status: Annotated[Optional[str], pydantic.Field(alias="caseStatus")] = None
69
+ r"""Status of the case."""
70
+
71
+ employer_name: Annotated[Optional[str], pydantic.Field(alias="employerName")] = None
72
+ r"""Name of the employer."""
73
+
74
+ end_date: Annotated[Optional[str], pydantic.Field(alias="endDate")] = None
75
+ r"""Job end date, as returned by the provider."""
76
+
77
+ full_time_position: Annotated[
78
+ Optional[str], pydantic.Field(alias="fullTimePosition")
79
+ ] = None
80
+ r"""Flag indicating whether the position is full-time, as returned by the provider."""
81
+
82
+ h1b_dependent: Annotated[Optional[str], pydantic.Field(alias="h1bDependent")] = None
83
+ r"""Flag indicating whether the employer is H-1B dependent, as returned by the provider."""
84
+
85
+ job_title: Annotated[Optional[str], pydantic.Field(alias="jobTitle")] = None
86
+ r"""Job title of the position."""
87
+
88
+ quarter: Optional[int] = None
89
+ r"""Quarter of the application."""
90
+
91
+ received_date: Annotated[Optional[str], pydantic.Field(alias="receivedDate")] = None
92
+ r"""Date the application was received, as returned by the provider."""
93
+
94
+ soc_code: Annotated[Optional[str], pydantic.Field(alias="socCode")] = None
95
+ r"""Standard Occupational Classification (SOC) code of the position."""
96
+
97
+ symbol: Optional[str] = None
98
+ r"""Company ticker symbol."""
99
+
100
+ visa_class: Annotated[Optional[str], pydantic.Field(alias="visaClass")] = None
101
+ r"""Visa class."""
102
+
103
+ wage_level: Annotated[Optional[str], pydantic.Field(alias="wageLevel")] = None
104
+ r"""Wage level of the position."""
105
+
106
+ wage_range_from: Annotated[
107
+ Optional[float], pydantic.Field(alias="wageRangeFrom")
108
+ ] = None
109
+ r"""Lower bound of the offered wage range."""
110
+
111
+ wage_range_to: Annotated[Optional[float], pydantic.Field(alias="wageRangeTo")] = (
112
+ None
113
+ )
114
+ r"""Upper bound of the offered wage range."""
115
+
116
+ wage_unit_of_pay: Annotated[
117
+ Optional[str], pydantic.Field(alias="wageUnitOfPay")
118
+ ] = None
119
+ r"""Unit of pay that the wage range is expressed in."""
120
+
121
+ worksite_address: Annotated[
122
+ Optional[str], pydantic.Field(alias="worksiteAddress")
123
+ ] = None
124
+ r"""Worksite street address."""
125
+
126
+ worksite_city: Annotated[Optional[str], pydantic.Field(alias="worksiteCity")] = None
127
+ r"""Worksite city."""
128
+
129
+ worksite_county: Annotated[
130
+ Optional[str], pydantic.Field(alias="worksiteCounty")
131
+ ] = None
132
+ r"""Worksite county."""
133
+
134
+ worksite_postal_code: Annotated[
135
+ Optional[str], pydantic.Field(alias="worksitePostalCode")
136
+ ] = None
137
+ r"""Worksite postal code."""
138
+
139
+ worksite_state: Annotated[Optional[str], pydantic.Field(alias="worksiteState")] = (
140
+ None
141
+ )
142
+ r"""Worksite state."""
143
+
144
+ year: Optional[int] = None
145
+ r"""Year of the application."""
146
+
147
+ @model_serializer(mode="wrap")
148
+ def serialize_model(self, handler):
149
+ optional_fields = set(
150
+ [
151
+ "beginDate",
152
+ "caseNumber",
153
+ "caseStatus",
154
+ "employerName",
155
+ "endDate",
156
+ "fullTimePosition",
157
+ "h1bDependent",
158
+ "jobTitle",
159
+ "quarter",
160
+ "receivedDate",
161
+ "socCode",
162
+ "symbol",
163
+ "visaClass",
164
+ "wageLevel",
165
+ "wageRangeFrom",
166
+ "wageRangeTo",
167
+ "wageUnitOfPay",
168
+ "worksiteAddress",
169
+ "worksiteCity",
170
+ "worksiteCounty",
171
+ "worksitePostalCode",
172
+ "worksiteState",
173
+ "year",
174
+ ]
175
+ )
176
+ serialized = handler(self)
177
+ m = {}
178
+
179
+ for n, f in type(self).model_fields.items():
180
+ k = f.alias or n
181
+ val = serialized.get(k, serialized.get(n))
182
+
183
+ if val != UNSET_SENTINEL:
184
+ if val is not None or k not in optional_fields:
185
+ m[k] = val
186
+
187
+ return m
188
+
189
+
190
+ class VisaApplicationsResponseTypedDict(TypedDict):
191
+ r"""H-1B and permanent visa applications filed by a company, as provided by Finnhub."""
192
+
193
+ data: NotRequired[List[VisaApplicationsResponseDataTypedDict]]
194
+ r"""Visa application records for the symbol."""
195
+ symbol: NotRequired[str]
196
+ r"""Company ticker symbol."""
197
+
198
+
199
+ class VisaApplicationsResponse(BaseModel):
200
+ r"""H-1B and permanent visa applications filed by a company, as provided by Finnhub."""
201
+
202
+ data: Optional[List[VisaApplicationsResponseData]] = None
203
+ r"""Visa application records for the symbol."""
204
+
205
+ symbol: Optional[str] = None
206
+ r"""Company ticker symbol."""
207
+
208
+ @model_serializer(mode="wrap")
209
+ def serialize_model(self, handler):
210
+ optional_fields = set(["data", "symbol"])
211
+ serialized = handler(self)
212
+ m = {}
213
+
214
+ for n, f in type(self).model_fields.items():
215
+ k = f.alias or n
216
+ val = serialized.get(k, serialized.get(n))
217
+
218
+ if val != UNSET_SENTINEL:
219
+ if val is not None or k not in optional_fields:
220
+ m[k] = val
221
+
222
+ return m
223
+
224
+
225
+ try:
226
+ VisaApplicationsResponseData.model_rebuild()
227
+ except NameError:
228
+ pass
@@ -0,0 +1,68 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 8e3de726d672
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
+ from pydantic import model_serializer
13
+ from typing import List, Optional
14
+ from typing_extensions import NotRequired, TypedDict
15
+
16
+
17
+ class WatchlistTypedDict(TypedDict):
18
+ r"""Saved list of symbols a user wants to monitor. Watchlists are read-only from a trading-risk perspective and do not place orders."""
19
+
20
+ id: NotRequired[int]
21
+ r"""Watchlist identifier. Use this value when reading, updating, or deleting a specific watchlist."""
22
+ invalid_symbols: NotRequired[List[str]]
23
+ r"""Symbols from the request that could not be resolved and were dropped from `symbols`. Only present on create and update responses when at least one submitted symbol failed resolution."""
24
+ name: NotRequired[str]
25
+ r"""User-facing watchlist name, such as Tech Stocks or Dividend Ideas. Show this as the list label in your app."""
26
+ symbols: NotRequired[Nullable[List[str]]]
27
+ r"""Symbols saved in the watchlist. Use exact uppercase ticker symbols and confirm unfamiliar symbols with symbol search. May be `null` for a watchlist saved through Replace All Watchlists without `symbols`."""
28
+
29
+
30
+ class Watchlist(BaseModel):
31
+ r"""Saved list of symbols a user wants to monitor. Watchlists are read-only from a trading-risk perspective and do not place orders."""
32
+
33
+ id: Optional[int] = None
34
+ r"""Watchlist identifier. Use this value when reading, updating, or deleting a specific watchlist."""
35
+
36
+ invalid_symbols: Optional[List[str]] = None
37
+ r"""Symbols from the request that could not be resolved and were dropped from `symbols`. Only present on create and update responses when at least one submitted symbol failed resolution."""
38
+
39
+ name: Optional[str] = None
40
+ r"""User-facing watchlist name, such as Tech Stocks or Dividend Ideas. Show this as the list label in your app."""
41
+
42
+ symbols: OptionalNullable[List[str]] = UNSET
43
+ r"""Symbols saved in the watchlist. Use exact uppercase ticker symbols and confirm unfamiliar symbols with symbol search. May be `null` for a watchlist saved through Replace All Watchlists without `symbols`."""
44
+
45
+ @model_serializer(mode="wrap")
46
+ def serialize_model(self, handler):
47
+ optional_fields = set(["id", "invalid_symbols", "name", "symbols"])
48
+ nullable_fields = set(["symbols"])
49
+ serialized = handler(self)
50
+ m = {}
51
+
52
+ for n, f in type(self).model_fields.items():
53
+ k = f.alias or n
54
+ val = serialized.get(k, serialized.get(n))
55
+ is_nullable_and_explicitly_set = (
56
+ k in nullable_fields
57
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
58
+ )
59
+
60
+ if val != UNSET_SENTINEL:
61
+ if (
62
+ val is not None
63
+ or k not in optional_fields
64
+ or is_nullable_and_explicitly_set
65
+ ):
66
+ m[k] = val
67
+
68
+ return m