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.
- finance_dev/__init__.py +18 -0
- finance_dev/_hooks/__init__.py +7 -0
- finance_dev/_hooks/clientcredentials.py +319 -0
- finance_dev/_hooks/oauth2scopes.py +50 -0
- finance_dev/_hooks/registration.py +13 -0
- finance_dev/_hooks/sdkhooks.py +82 -0
- finance_dev/_hooks/types.py +125 -0
- finance_dev/_version.py +16 -0
- finance_dev/accounts.py +797 -0
- finance_dev/alternativedata.py +4830 -0
- finance_dev/analytics.py +3757 -0
- finance_dev/basesdk.py +393 -0
- finance_dev/calendar.py +1523 -0
- finance_dev/chart.py +1881 -0
- finance_dev/company.py +1105 -0
- finance_dev/corporateactions.py +1795 -0
- finance_dev/economy.py +1153 -0
- finance_dev/errors/__init__.py +94 -0
- finance_dev/errors/apierror.py +41 -0
- finance_dev/errors/authenticationerrorenvelope.py +43 -0
- finance_dev/errors/badrequest.py +34 -0
- finance_dev/errors/errorenvelope.py +42 -0
- finance_dev/errors/errorresponse.py +45 -0
- finance_dev/errors/financedevapierror.py +31 -0
- finance_dev/errors/forbidden.py +34 -0
- finance_dev/errors/internalservererror.py +35 -0
- finance_dev/errors/no_response_error.py +18 -0
- finance_dev/errors/notfound.py +34 -0
- finance_dev/errors/orderhistorybadrequest.py +35 -0
- finance_dev/errors/predorderserrorenvelope.py +42 -0
- finance_dev/errors/responsevalidationerror.py +28 -0
- finance_dev/errors/unauthorized.py +34 -0
- finance_dev/estimates.py +1906 -0
- finance_dev/etf.py +1108 -0
- finance_dev/filings.py +586 -0
- finance_dev/financials.py +4079 -0
- finance_dev/history.py +477 -0
- finance_dev/httpclient.py +126 -0
- finance_dev/indices.py +2308 -0
- finance_dev/logos.py +692 -0
- finance_dev/market.py +1825 -0
- finance_dev/markets.py +952 -0
- finance_dev/models/__init__.py +4568 -0
- finance_dev/models/accountbalancev2.py +340 -0
- finance_dev/models/accountitem.py +78 -0
- finance_dev/models/accountposition.py +147 -0
- finance_dev/models/aggregatetechnicalindicatorsresponse.py +192 -0
- finance_dev/models/analystinsightitem.py +161 -0
- finance_dev/models/analystinsightsresponse.py +39 -0
- finance_dev/models/apperror.py +123 -0
- finance_dev/models/authenticationerrordetail.py +58 -0
- finance_dev/models/bankbranchesresponse.py +96 -0
- finance_dev/models/basicfinancials.py +243 -0
- finance_dev/models/bullbearanalysisresponse.py +150 -0
- finance_dev/models/cancelorderop.py +40 -0
- finance_dev/models/cancelordrequest_union.py +287 -0
- finance_dev/models/cancelordresponse.py +115 -0
- finance_dev/models/cashflowstatement.py +290 -0
- finance_dev/models/cashflowstatementsresponse.py +61 -0
- finance_dev/models/chartbars.py +111 -0
- finance_dev/models/chartconfig.py +81 -0
- finance_dev/models/chartresolution.py +46 -0
- finance_dev/models/companyesgresponse.py +408 -0
- finance_dev/models/companyexecutive.py +70 -0
- finance_dev/models/companyexecutiveresponse.py +39 -0
- finance_dev/models/companypeersresponse.py +38 -0
- finance_dev/models/companypresentationresponse.py +96 -0
- finance_dev/models/companyprofile.py +255 -0
- finance_dev/models/conferencecallsresponse.py +169 -0
- finance_dev/models/congressionaltradingresponse.py +138 -0
- finance_dev/models/covid19uscasesresponse.py +79 -0
- finance_dev/models/createconfigwatchlistop.py +40 -0
- finance_dev/models/createwatchlistrequest.py +43 -0
- finance_dev/models/dailymarketsummaryresponse.py +73 -0
- finance_dev/models/deleteconfigwatchlistbyidop.py +53 -0
- finance_dev/models/dividenditem.py +125 -0
- finance_dev/models/dividendsresponse.py +61 -0
- finance_dev/models/earningrelease.py +291 -0
- finance_dev/models/earningscallliveresponse.py +103 -0
- finance_dev/models/earningsqualityscoreresponse.py +140 -0
- finance_dev/models/earningssurprisesresponse.py +125 -0
- finance_dev/models/ebitdaestimatesresponse.py +176 -0
- finance_dev/models/ebitestimatesresponse.py +176 -0
- finance_dev/models/economicscalendarevent.py +160 -0
- finance_dev/models/economicsindicator.py +87 -0
- finance_dev/models/epsestimatesresponse.py +176 -0
- finance_dev/models/equitydetailsdto.py +569 -0
- finance_dev/models/errorcode.py +48 -0
- finance_dev/models/etblistresponse.py +43 -0
- finance_dev/models/etbsearchrequest.py +21 -0
- finance_dev/models/etbsearchresponse.py +43 -0
- finance_dev/models/etfcountryallocationresponse.py +113 -0
- finance_dev/models/etfholdingsresponse.py +163 -0
- finance_dev/models/etfprofileresponse.py +234 -0
- finance_dev/models/etfsectorallocationresponse.py +113 -0
- finance_dev/models/exchangecode.py +90 -0
- finance_dev/models/fdaadvisorycommitteecalendarresponse.py +88 -0
- finance_dev/models/filingsimilarityrecord.py +115 -0
- finance_dev/models/filingssimilarityindexdatawrapper.py +52 -0
- finance_dev/models/filingssimilarityindexresponse.py +42 -0
- finance_dev/models/financialratiosresponse.py +252 -0
- finance_dev/models/financialsreporteddatawrapper.py +49 -0
- finance_dev/models/financialsreportedresponse.py +42 -0
- finance_dev/models/financialsrevenuebreakdowndatawrapper.py +49 -0
- finance_dev/models/financialsrevenuebreakdownresponse.py +42 -0
- finance_dev/models/financialsstatementsdatawrapper.py +44 -0
- finance_dev/models/financialsstatementsresponse.py +42 -0
- finance_dev/models/financialstatement.py +171 -0
- finance_dev/models/financialstatementtype.py +14 -0
- finance_dev/models/getaccountbalanceop.py +53 -0
- finance_dev/models/getaccountpositionsop.py +53 -0
- finance_dev/models/getaccountsresponse.py +22 -0
- finance_dev/models/getaggregatetechnicalindicatorsop.py +94 -0
- finance_dev/models/getanalystinsightsop.py +164 -0
- finance_dev/models/getbankbranchesop.py +53 -0
- finance_dev/models/getbaseeventop.py +87 -0
- finance_dev/models/getbullbearanalysisop.py +91 -0
- finance_dev/models/getcashflowstatementsop.py +564 -0
- finance_dev/models/getchartconfigop.py +40 -0
- finance_dev/models/getcharthistoryop.py +122 -0
- finance_dev/models/getcharttimeop.py +39 -0
- finance_dev/models/getcompanyesgop.py +53 -0
- finance_dev/models/getcompanyexecutivesop.py +56 -0
- finance_dev/models/getcompanymetricsop.py +68 -0
- finance_dev/models/getcompanypeersop.py +53 -0
- finance_dev/models/getcompanypresentationop.py +56 -0
- finance_dev/models/getcompanyprofileop.py +86 -0
- finance_dev/models/getconferencecallsop.py +111 -0
- finance_dev/models/getconfigwatchlistbyidop.py +53 -0
- finance_dev/models/getconfigwatchlistsop.py +40 -0
- finance_dev/models/getcongressionaltradingop.py +73 -0
- finance_dev/models/getcovid19uscasesop.py +43 -0
- finance_dev/models/getdailymarketsummaryop.py +92 -0
- finance_dev/models/getdividendsop.py +294 -0
- finance_dev/models/getearningscalendarop.py +87 -0
- finance_dev/models/getearningscallliveop.py +91 -0
- finance_dev/models/getearningsqualityscoreop.py +81 -0
- finance_dev/models/getearningssurprisesop.py +80 -0
- finance_dev/models/getebitdaestimatesop.py +91 -0
- finance_dev/models/getebitestimatesop.py +88 -0
- finance_dev/models/geteconomicscalendarop.py +92 -0
- finance_dev/models/geteconomicscalendarresponse.py +56 -0
- finance_dev/models/getepsestimatesop.py +88 -0
- finance_dev/models/getequitydetailsop.py +56 -0
- finance_dev/models/getequitydetailsresponse.py +45 -0
- finance_dev/models/getetblistop.py +40 -0
- finance_dev/models/getetfcountryallocationop.py +80 -0
- finance_dev/models/getetfholdingsop.py +96 -0
- finance_dev/models/getetfprofileop.py +77 -0
- finance_dev/models/getetfsectorallocationop.py +80 -0
- finance_dev/models/geteventcontractsop.py +87 -0
- finance_dev/models/getfdaadvisorycommitteecalendarop.py +47 -0
- finance_dev/models/getfilingssimilarityindexop.py +102 -0
- finance_dev/models/getfinancialratiosop.py +612 -0
- finance_dev/models/getfinancialstatementsop.py +117 -0
- finance_dev/models/getfundownershipop.py +77 -0
- finance_dev/models/gethistoricaldataop.py +61 -0
- finance_dev/models/gethistoricalesgop.py +53 -0
- finance_dev/models/gethistorybatchop.py +74 -0
- finance_dev/models/gethistoryop.py +123 -0
- finance_dev/models/getincomestatementsop.py +564 -0
- finance_dev/models/getindexbarop.py +140 -0
- finance_dev/models/getindexbarsop.py +149 -0
- finance_dev/models/getindexchartbarsop.py +178 -0
- finance_dev/models/getindexrealtimevaluesop.py +94 -0
- finance_dev/models/getinflationexpectationsop.py +157 -0
- finance_dev/models/getinflationop.py +154 -0
- finance_dev/models/getinsidertransactionsop.py +90 -0
- finance_dev/models/getinstitutionalownershipop.py +99 -0
- finance_dev/models/getinstitutionalportfolioop.py +75 -0
- finance_dev/models/getinvestmentthemeop.py +68 -0
- finance_dev/models/getipocalendarop.py +63 -0
- finance_dev/models/getlobbyingop.py +70 -0
- finance_dev/models/getmarketbreadthop.py +40 -0
- finance_dev/models/getmarketholidaysop.py +65 -0
- finance_dev/models/getmarketstatusop.py +65 -0
- finance_dev/models/getmergersandacquisitionsop.py +113 -0
- finance_dev/models/getnetinflowop.py +40 -0
- finance_dev/models/getnewsbyidop.py +73 -0
- finance_dev/models/getnewsop.py +98 -0
- finance_dev/models/getnewssentimentop.py +53 -0
- finance_dev/models/getoptionchainsnapshotop.py +244 -0
- finance_dev/models/getoptioncontractsnapshotop.py +69 -0
- finance_dev/models/getoptiondetailsop.py +56 -0
- finance_dev/models/getoptiondetailsresponse.py +45 -0
- finance_dev/models/getoptionlasttradeop.py +56 -0
- finance_dev/models/getoptionopencloseop.py +66 -0
- finance_dev/models/getoptionpreviousdayop.py +56 -0
- finance_dev/models/getoptionquotesop.py +177 -0
- finance_dev/models/getoptionsactivityop.py +111 -0
- finance_dev/models/getoptionsetfstopvolumeop.py +70 -0
- finance_dev/models/getoptionsstockstopgainersop.py +70 -0
- finance_dev/models/getoptionsstockstopvolumeop.py +70 -0
- finance_dev/models/getoptionsunusualactivityop.py +100 -0
- finance_dev/models/getoptiontradesop.py +177 -0
- finance_dev/models/getordersv2response.py +66 -0
- finance_dev/models/getownershipdataop.py +77 -0
- finance_dev/models/getpositionsresponse.py +39 -0
- finance_dev/models/getpredictionorderop.py +88 -0
- finance_dev/models/getpricetargetop.py +53 -0
- finance_dev/models/getquotesop.py +53 -0
- finance_dev/models/getratingsop.py +164 -0
- finance_dev/models/getratingsresponse.py +39 -0
- finance_dev/models/getreportedfinancialsop.py +127 -0
- finance_dev/models/getrevenuebreakdownop.py +85 -0
- finance_dev/models/getrevenueestimatesop.py +91 -0
- finance_dev/models/getsecfilingsop.py +113 -0
- finance_dev/models/getsectortickersop.py +124 -0
- finance_dev/models/getsectorwisechangeop.py +84 -0
- finance_dev/models/getshortinterestop.py +334 -0
- finance_dev/models/getshortvolumeop.py +333 -0
- finance_dev/models/getsocialsentimentop.py +90 -0
- finance_dev/models/getspinoffsop.py +112 -0
- finance_dev/models/getstockaggregatesop.py +174 -0
- finance_dev/models/getstocklastquoteop.py +56 -0
- finance_dev/models/getstocklasttradeop.py +56 -0
- finance_dev/models/getstockopencloseop.py +90 -0
- finance_dev/models/getstockpreviousdayop.py +80 -0
- finance_dev/models/getstockquotesop.py +177 -0
- finance_dev/models/getstocksnapshotsop.py +82 -0
- finance_dev/models/getstocksplitsop.py +243 -0
- finance_dev/models/getstocktradesop.py +177 -0
- finance_dev/models/getsupplychainop.py +53 -0
- finance_dev/models/getsupportresistancelevelsop.py +90 -0
- finance_dev/models/getsymbolinfoop.py +53 -0
- finance_dev/models/gettechnicalindicatorop.py +172 -0
- finance_dev/models/gettechnicalpatternsop.py +88 -0
- finance_dev/models/gettenderoffersop.py +112 -0
- finance_dev/models/gettickhistoryop.py +104 -0
- finance_dev/models/gettopgainersop.py +78 -0
- finance_dev/models/gettoplosersop.py +78 -0
- finance_dev/models/gettopmostactiveop.py +78 -0
- finance_dev/models/gettranscriptop.py +53 -0
- finance_dev/models/gettreasuryyieldsop.py +157 -0
- finance_dev/models/getunifiedsnapshotop.py +223 -0
- finance_dev/models/getupgradesdowngradesop.py +91 -0
- finance_dev/models/getusaspendingop.py +70 -0
- finance_dev/models/getuseraccountsop.py +40 -0
- finance_dev/models/getusptopatentsop.py +70 -0
- finance_dev/models/getvisaapplicationsop.py +73 -0
- finance_dev/models/historicalesgresponse.py +439 -0
- finance_dev/models/httpmetadata.py +24 -0
- finance_dev/models/incomestatement.py +296 -0
- finance_dev/models/incomestatementsresponse.py +61 -0
- finance_dev/models/indexbarresponse.py +194 -0
- finance_dev/models/indexbarsresponse.py +123 -0
- finance_dev/models/indexchartbarsresponse.py +213 -0
- finance_dev/models/indexgroupsresponse.py +78 -0
- finance_dev/models/indexlistresponse.py +95 -0
- finance_dev/models/indexsearchresponse.py +93 -0
- finance_dev/models/indicesbygroupresponse.py +93 -0
- finance_dev/models/indicesidentifiertype.py +28 -0
- finance_dev/models/indicesrealtimeindexinfo.py +67 -0
- finance_dev/models/indicesrealtimeindexvalue.py +157 -0
- finance_dev/models/indicesrealtimevaluesitem.py +80 -0
- finance_dev/models/indicesrealtimevaluesresponse.py +42 -0
- finance_dev/models/inflationexpectationsresponse.py +140 -0
- finance_dev/models/inflationresponse.py +132 -0
- finance_dev/models/insidertransaction.py +97 -0
- finance_dev/models/insidertransactionsresponse.py +39 -0
- finance_dev/models/institutionalholding.py +77 -0
- finance_dev/models/institutionalownershipresponse.py +39 -0
- finance_dev/models/institutionalportfolioresponse.py +39 -0
- finance_dev/models/investmentthemeid.py +35 -0
- finance_dev/models/investmentthemeresponse.py +80 -0
- finance_dev/models/ipocalendarresponse.py +39 -0
- finance_dev/models/ipoitem.py +93 -0
- finance_dev/models/listactiveordersop.py +87 -0
- finance_dev/models/listcategoriesop.py +79 -0
- finance_dev/models/listindexgroupsop.py +40 -0
- finance_dev/models/listindicesbygroupop.py +58 -0
- finance_dev/models/listindicesop.py +91 -0
- finance_dev/models/listoptioncontractsop.py +66 -0
- finance_dev/models/listoptionexpirydatesop.py +56 -0
- finance_dev/models/listorderhistoryop.py +139 -0
- finance_dev/models/listpredictionordersop.py +134 -0
- finance_dev/models/listtranscriptsop.py +53 -0
- finance_dev/models/lobbyingresponse.py +166 -0
- finance_dev/models/logosearchresponse.py +152 -0
- finance_dev/models/logosyncresponse.py +277 -0
- finance_dev/models/marketbreadth.py +97 -0
- finance_dev/models/marketbreadthresponse.py +44 -0
- finance_dev/models/marketholiday.py +56 -0
- finance_dev/models/marketholidayresponse.py +39 -0
- finance_dev/models/marketstatus.py +67 -0
- finance_dev/models/mergersandacquisitionsresponse.py +186 -0
- finance_dev/models/metricseriespoint.py +43 -0
- finance_dev/models/netinflow.py +81 -0
- finance_dev/models/netinflowresponse.py +44 -0
- finance_dev/models/newsitem.py +102 -0
- finance_dev/models/newslistresponse.py +128 -0
- finance_dev/models/newssentimentresponse.py +176 -0
- finance_dev/models/newstypeenum.py +16 -0
- finance_dev/models/optionchainsnapshotresponse.py +64 -0
- finance_dev/models/optioncontractsnapshotresponse.py +64 -0
- finance_dev/models/optioncontractsnapshotrow.py +164 -0
- finance_dev/models/optioncontractsresponse.py +131 -0
- finance_dev/models/optiondetailsdto.py +72 -0
- finance_dev/models/optionexpirydatesresponse.py +53 -0
- finance_dev/models/optionlasttraderesponse.py +169 -0
- finance_dev/models/optionopencloseresponse.py +97 -0
- finance_dev/models/optionpreviousdayresponse.py +89 -0
- finance_dev/models/optionquotesresponse.py +138 -0
- finance_dev/models/optionsactivityresponse.py +265 -0
- finance_dev/models/optionsnapshotcontractdetails.py +85 -0
- finance_dev/models/optionsnapshotdaybar.py +107 -0
- finance_dev/models/optionsnapshotgreeks.py +67 -0
- finance_dev/models/optionsnapshotlastquote.py +116 -0
- finance_dev/models/optionsnapshotlasttrade.py +102 -0
- finance_dev/models/optionsnapshotunderlying.py +86 -0
- finance_dev/models/optionsscreeneritem.py +151 -0
- finance_dev/models/optionsunusualactivityresponse.py +62 -0
- finance_dev/models/optionsunusualactivitytrade.py +103 -0
- finance_dev/models/optiontradesresponse.py +132 -0
- finance_dev/models/orderrequesttimeinforceenum.py +29 -0
- finance_dev/models/ordersideenum.py +20 -0
- finance_dev/models/ordertypeenum.py +20 -0
- finance_dev/models/ordleg.py +162 -0
- finance_dev/models/ordresponse.py +202 -0
- finance_dev/models/ownershipdataresponse.py +39 -0
- finance_dev/models/ownershiprecord.py +74 -0
- finance_dev/models/placeorderop.py +40 -0
- finance_dev/models/placeordrequest_union.py +335 -0
- finance_dev/models/placepredictionorderop.py +114 -0
- finance_dev/models/predmdbaseevent.py +62 -0
- finance_dev/models/predmdbaseeventhit.py +53 -0
- finance_dev/models/predmdbaseeventsearchresult.py +46 -0
- finance_dev/models/predmdbaseeventwithevents.py +32 -0
- finance_dev/models/predmdbatchhistoryrequest.py +16 -0
- finance_dev/models/predmdbatchhistoryresponse.py +16 -0
- finance_dev/models/predmdcategory.py +48 -0
- finance_dev/models/predmdcontract.py +177 -0
- finance_dev/models/predmdcontracthit.py +157 -0
- finance_dev/models/predmdcontractsearchresult.py +46 -0
- finance_dev/models/predmdevent.py +136 -0
- finance_dev/models/predmdeventhit.py +73 -0
- finance_dev/models/predmdeventsearchresult.py +46 -0
- finance_dev/models/predmdeventwithcontracts.py +22 -0
- finance_dev/models/predmdhistoryrequest.py +59 -0
- finance_dev/models/predmdhistoryresponse.py +53 -0
- finance_dev/models/predmdtick.py +53 -0
- finance_dev/models/predordersapperror.py +78 -0
- finance_dev/models/predordersorder.py +267 -0
- finance_dev/models/predordersorderdetail.py +26 -0
- finance_dev/models/predordersorderpage.py +45 -0
- finance_dev/models/predordersorderreport.py +88 -0
- finance_dev/models/predordersplaceorderrequest.py +159 -0
- finance_dev/models/previeworderop.py +40 -0
- finance_dev/models/previeworderresponse.py +127 -0
- finance_dev/models/pricetargetresponse.py +89 -0
- finance_dev/models/quotedata.py +49 -0
- finance_dev/models/quotesresponse.py +62 -0
- finance_dev/models/quotevalues.py +114 -0
- finance_dev/models/rating.py +193 -0
- finance_dev/models/ratingsaccuracy.py +242 -0
- finance_dev/models/replaceconfigwatchlistsop.py +40 -0
- finance_dev/models/replaceorderop.py +40 -0
- finance_dev/models/replaceordrequest_union.py +367 -0
- finance_dev/models/replaceordresponse.py +144 -0
- finance_dev/models/reportedbsitem.py +53 -0
- finance_dev/models/reportedfiling.py +110 -0
- finance_dev/models/reportedreport.py +39 -0
- finance_dev/models/reportingfrequency.py +16 -0
- finance_dev/models/revenuebreakdownaxis.py +52 -0
- finance_dev/models/revenuebreakdowndatapoint.py +58 -0
- finance_dev/models/revenuebreakdownentry.py +51 -0
- finance_dev/models/revenuebreakdowninner.py +75 -0
- finance_dev/models/revenueestimatesresponse.py +176 -0
- finance_dev/models/screenclause.py +70 -0
- finance_dev/models/screengroup.py +75 -0
- finance_dev/models/searchetbsymbolsop.py +40 -0
- finance_dev/models/searchindicesop.py +55 -0
- finance_dev/models/searchlogosop.py +158 -0
- finance_dev/models/searchmarketsymbolsop.py +80 -0
- finance_dev/models/searchop.py +232 -0
- finance_dev/models/searchsymbolitem.py +76 -0
- finance_dev/models/searchsymbolresponseitem.py +71 -0
- finance_dev/models/searchsymbolsop.py +77 -0
- finance_dev/models/secfiling.py +91 -0
- finance_dev/models/secfilingsresponse.py +39 -0
- finance_dev/models/sectoravgchange.py +50 -0
- finance_dev/models/security.py +59 -0
- finance_dev/models/securitytypeenum.py +16 -0
- finance_dev/models/shortinterestresponse.py +126 -0
- finance_dev/models/shortvolumeresponse.py +198 -0
- finance_dev/models/socialsentimentresponse.py +124 -0
- finance_dev/models/sortorderenum.py +13 -0
- finance_dev/models/spinoffsresponse.py +136 -0
- finance_dev/models/stockaggregatesresponse.py +92 -0
- finance_dev/models/stocklastquoteresponse.py +175 -0
- finance_dev/models/stocklasttraderesponse.py +169 -0
- finance_dev/models/stockohlcbar.py +85 -0
- finance_dev/models/stockopencloseresponse.py +109 -0
- finance_dev/models/stockpreviousdayresponse.py +86 -0
- finance_dev/models/stockquotesresponse.py +170 -0
- finance_dev/models/stockscreenerop.py +144 -0
- finance_dev/models/stockscreenerrequest.py +131 -0
- finance_dev/models/stockscreenerresponse.py +197 -0
- finance_dev/models/stocksnapshotsresponse.py +454 -0
- finance_dev/models/stocksplitsresponse.py +144 -0
- finance_dev/models/stocktradesresponse.py +164 -0
- finance_dev/models/supplychainresponse.py +158 -0
- finance_dev/models/supportresistancelevelsresponse.py +68 -0
- finance_dev/models/symboldetails.py +119 -0
- finance_dev/models/symbolerror.py +43 -0
- finance_dev/models/symbolinfo.py +183 -0
- finance_dev/models/synclogosop.py +146 -0
- finance_dev/models/technicalindicatorresponse.py +43 -0
- finance_dev/models/technicalindicatortype.py +21 -0
- finance_dev/models/technicalpatternsresponse.py +249 -0
- finance_dev/models/tenderofferidentifiertype.py +26 -0
- finance_dev/models/tenderoffersresponse.py +548 -0
- finance_dev/models/tickchartbars.py +104 -0
- finance_dev/models/tickresolution.py +20 -0
- finance_dev/models/timeinforceenum.py +26 -0
- finance_dev/models/tradeorderlegv2.py +164 -0
- finance_dev/models/tradeorderv2.py +434 -0
- finance_dev/models/transcriptresponse.py +162 -0
- finance_dev/models/transcriptsresponse.py +89 -0
- finance_dev/models/treasuryyieldsresponse.py +160 -0
- finance_dev/models/unifiedsnapshotresponse.py +308 -0
- finance_dev/models/updateconfigwatchlistbyidop.py +65 -0
- finance_dev/models/updatewatchlistrequest_union.py +134 -0
- finance_dev/models/upgradesdowngradesresponse.py +98 -0
- finance_dev/models/usaspendingresponse.py +222 -0
- finance_dev/models/usptopatentsresponse.py +134 -0
- finance_dev/models/visaapplicationsresponse.py +228 -0
- finance_dev/models/watchlist.py +68 -0
- finance_dev/models/watchlistrequest.py +43 -0
- finance_dev/models/watchlistresponse.py +44 -0
- finance_dev/news_sdk.py +829 -0
- finance_dev/options.py +3443 -0
- finance_dev/orders.py +1907 -0
- finance_dev/ownership.py +1386 -0
- finance_dev/predictions.py +29 -0
- finance_dev/predictions_orders.py +852 -0
- finance_dev/py.typed +1 -0
- finance_dev/sdk.py +347 -0
- finance_dev/sdkconfiguration.py +50 -0
- finance_dev/signals.py +338 -0
- finance_dev/stocks.py +3131 -0
- finance_dev/technicalanalysis_sdk.py +1137 -0
- finance_dev/types/__init__.py +25 -0
- finance_dev/types/base64fileinput.py +44 -0
- finance_dev/types/basemodel.py +78 -0
- finance_dev/utils/__init__.py +181 -0
- finance_dev/utils/annotations.py +80 -0
- finance_dev/utils/datetimes.py +42 -0
- finance_dev/utils/dynamic_imports.py +55 -0
- finance_dev/utils/enums.py +135 -0
- finance_dev/utils/eventstreaming.py +327 -0
- finance_dev/utils/forms.py +240 -0
- finance_dev/utils/headers.py +137 -0
- finance_dev/utils/logger.py +23 -0
- finance_dev/utils/metadata.py +120 -0
- finance_dev/utils/queryparams.py +218 -0
- finance_dev/utils/requestbodies.py +68 -0
- finance_dev/utils/retries.py +373 -0
- finance_dev/utils/security.py +199 -0
- finance_dev/utils/serializers.py +327 -0
- finance_dev/utils/unmarshal_json_response.py +39 -0
- finance_dev/utils/url.py +155 -0
- finance_dev/utils/values.py +143 -0
- finance_dev/watchlist_sdk.py +1583 -0
- finance_dev/websocket/__init__.py +57 -0
- finance_dev/websocket/account.py +5 -0
- finance_dev/websocket/auth.py +124 -0
- finance_dev/websocket/chart.py +5 -0
- finance_dev/websocket/codec.py +66 -0
- finance_dev/websocket/config.py +52 -0
- finance_dev/websocket/errors.py +54 -0
- finance_dev/websocket/market.py +5 -0
- finance_dev/websocket/models/__init__.py +52 -0
- finance_dev/websocket/models/account.py +60 -0
- finance_dev/websocket/models/chart.py +44 -0
- finance_dev/websocket/models/common.py +85 -0
- finance_dev/websocket/models/market.py +113 -0
- finance_dev/websocket/resources.py +327 -0
- finance_dev/websocket/sdk.py +13 -0
- finance_dev/websocket/transport/async_connection.py +493 -0
- finance_dev/websocket/transport/base.py +78 -0
- finance_dev/websocket/transport/sync_connection.py +470 -0
- finance_dev-0.9.0.dist-info/METADATA +913 -0
- finance_dev-0.9.0.dist-info/RECORD +486 -0
- finance_dev-0.9.0.dist-info/WHEEL +5 -0
- finance_dev-0.9.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: ec5daac4efb8
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from finance_dev.types import BaseModel, Nullable, UNSET_SENTINEL
|
|
6
|
+
import pydantic
|
|
7
|
+
from pydantic import model_serializer
|
|
8
|
+
from typing import List
|
|
9
|
+
from typing_extensions import Annotated, TypedDict
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class SubsessionTypedDict(TypedDict):
|
|
13
|
+
description: str
|
|
14
|
+
r"""Description of the subsession."""
|
|
15
|
+
id: str
|
|
16
|
+
r"""Identifier of the subsession."""
|
|
17
|
+
session: str
|
|
18
|
+
r"""Trading hours of the subsession."""
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class Subsession(BaseModel):
|
|
22
|
+
description: str
|
|
23
|
+
r"""Description of the subsession."""
|
|
24
|
+
|
|
25
|
+
id: str
|
|
26
|
+
r"""Identifier of the subsession."""
|
|
27
|
+
|
|
28
|
+
session: str
|
|
29
|
+
r"""Trading hours of the subsession."""
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
class SymbolInfoTypedDict(TypedDict):
|
|
33
|
+
r"""Chart symbol metadata, including supported resolutions, trading session and price scale."""
|
|
34
|
+
|
|
35
|
+
daily_multipliers: List[str]
|
|
36
|
+
r"""Available daily time multipliers"""
|
|
37
|
+
description: str
|
|
38
|
+
r"""Full description of the symbol/company"""
|
|
39
|
+
exchange: str
|
|
40
|
+
r"""Exchange code where the data originates. Format depends on the upstream data source and may use MIC, ISO 10383, or a vendor-specific code."""
|
|
41
|
+
format_: str
|
|
42
|
+
r"""Price format (usually 'price')"""
|
|
43
|
+
has_daily: bool
|
|
44
|
+
r"""Whether daily data is available"""
|
|
45
|
+
has_intraday: bool
|
|
46
|
+
r"""Whether intraday data is available"""
|
|
47
|
+
has_seconds: bool
|
|
48
|
+
r"""Whether seconds resolution is available"""
|
|
49
|
+
has_ticks: bool
|
|
50
|
+
r"""Whether tick data is available"""
|
|
51
|
+
has_weekly_and_monthly: bool
|
|
52
|
+
r"""Whether weekly and monthly data is available"""
|
|
53
|
+
intraday_multipliers: List[str]
|
|
54
|
+
r"""Available intraday time multipliers"""
|
|
55
|
+
listed_exchange: str
|
|
56
|
+
r"""Primary exchange where the symbol is listed"""
|
|
57
|
+
minmov: float
|
|
58
|
+
r"""Minimum price movement"""
|
|
59
|
+
monthly_multipliers: List[str]
|
|
60
|
+
r"""Available monthly time multipliers"""
|
|
61
|
+
name: str
|
|
62
|
+
r"""Symbol name"""
|
|
63
|
+
pricescale: int
|
|
64
|
+
r"""Price scale (e.g., 100 means divide price by 100)"""
|
|
65
|
+
session: str
|
|
66
|
+
r"""Trading session hours (e.g., '0930-1600')"""
|
|
67
|
+
subsession_id: str
|
|
68
|
+
r"""Identifier of the active subsession. Empty string when the symbol has no subsessions."""
|
|
69
|
+
subsessions: Nullable[List[SubsessionTypedDict]]
|
|
70
|
+
r"""Subsession definitions for the symbol. Null when the symbol has no subsessions."""
|
|
71
|
+
supported_resolutions: List[str]
|
|
72
|
+
r"""Resolutions supported for this symbol"""
|
|
73
|
+
ticker: str
|
|
74
|
+
r"""Symbol ticker"""
|
|
75
|
+
timezone: str
|
|
76
|
+
r"""Timezone of the exchange (e.g., 'America/New_York')"""
|
|
77
|
+
type: str
|
|
78
|
+
r"""Instrument class or provider category returned by the market data service. This value is not the trading order type."""
|
|
79
|
+
visible_plots_set: str
|
|
80
|
+
r"""Visible plots (e.g., 'ohlcv' for OHLC + Volume)"""
|
|
81
|
+
volume_precision: float
|
|
82
|
+
r"""Volume precision (decimal places)"""
|
|
83
|
+
weekly_multipliers: List[str]
|
|
84
|
+
r"""Available weekly time multipliers"""
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
class SymbolInfo(BaseModel):
|
|
88
|
+
r"""Chart symbol metadata, including supported resolutions, trading session and price scale."""
|
|
89
|
+
|
|
90
|
+
daily_multipliers: List[str]
|
|
91
|
+
r"""Available daily time multipliers"""
|
|
92
|
+
|
|
93
|
+
description: str
|
|
94
|
+
r"""Full description of the symbol/company"""
|
|
95
|
+
|
|
96
|
+
exchange: str
|
|
97
|
+
r"""Exchange code where the data originates. Format depends on the upstream data source and may use MIC, ISO 10383, or a vendor-specific code."""
|
|
98
|
+
|
|
99
|
+
format_: Annotated[str, pydantic.Field(alias="format")]
|
|
100
|
+
r"""Price format (usually 'price')"""
|
|
101
|
+
|
|
102
|
+
has_daily: bool
|
|
103
|
+
r"""Whether daily data is available"""
|
|
104
|
+
|
|
105
|
+
has_intraday: bool
|
|
106
|
+
r"""Whether intraday data is available"""
|
|
107
|
+
|
|
108
|
+
has_seconds: bool
|
|
109
|
+
r"""Whether seconds resolution is available"""
|
|
110
|
+
|
|
111
|
+
has_ticks: bool
|
|
112
|
+
r"""Whether tick data is available"""
|
|
113
|
+
|
|
114
|
+
has_weekly_and_monthly: bool
|
|
115
|
+
r"""Whether weekly and monthly data is available"""
|
|
116
|
+
|
|
117
|
+
intraday_multipliers: List[str]
|
|
118
|
+
r"""Available intraday time multipliers"""
|
|
119
|
+
|
|
120
|
+
listed_exchange: str
|
|
121
|
+
r"""Primary exchange where the symbol is listed"""
|
|
122
|
+
|
|
123
|
+
minmov: float
|
|
124
|
+
r"""Minimum price movement"""
|
|
125
|
+
|
|
126
|
+
monthly_multipliers: List[str]
|
|
127
|
+
r"""Available monthly time multipliers"""
|
|
128
|
+
|
|
129
|
+
name: str
|
|
130
|
+
r"""Symbol name"""
|
|
131
|
+
|
|
132
|
+
pricescale: int
|
|
133
|
+
r"""Price scale (e.g., 100 means divide price by 100)"""
|
|
134
|
+
|
|
135
|
+
session: str
|
|
136
|
+
r"""Trading session hours (e.g., '0930-1600')"""
|
|
137
|
+
|
|
138
|
+
subsession_id: str
|
|
139
|
+
r"""Identifier of the active subsession. Empty string when the symbol has no subsessions."""
|
|
140
|
+
|
|
141
|
+
subsessions: Nullable[List[Subsession]]
|
|
142
|
+
r"""Subsession definitions for the symbol. Null when the symbol has no subsessions."""
|
|
143
|
+
|
|
144
|
+
supported_resolutions: List[str]
|
|
145
|
+
r"""Resolutions supported for this symbol"""
|
|
146
|
+
|
|
147
|
+
ticker: str
|
|
148
|
+
r"""Symbol ticker"""
|
|
149
|
+
|
|
150
|
+
timezone: str
|
|
151
|
+
r"""Timezone of the exchange (e.g., 'America/New_York')"""
|
|
152
|
+
|
|
153
|
+
type: str
|
|
154
|
+
r"""Instrument class or provider category returned by the market data service. This value is not the trading order type."""
|
|
155
|
+
|
|
156
|
+
visible_plots_set: str
|
|
157
|
+
r"""Visible plots (e.g., 'ohlcv' for OHLC + Volume)"""
|
|
158
|
+
|
|
159
|
+
volume_precision: float
|
|
160
|
+
r"""Volume precision (decimal places)"""
|
|
161
|
+
|
|
162
|
+
weekly_multipliers: List[str]
|
|
163
|
+
r"""Available weekly time multipliers"""
|
|
164
|
+
|
|
165
|
+
@model_serializer(mode="wrap")
|
|
166
|
+
def serialize_model(self, handler):
|
|
167
|
+
serialized = handler(self)
|
|
168
|
+
m = {}
|
|
169
|
+
|
|
170
|
+
for n, f in type(self).model_fields.items():
|
|
171
|
+
k = f.alias or n
|
|
172
|
+
val = serialized.get(k, serialized.get(n))
|
|
173
|
+
|
|
174
|
+
if val != UNSET_SENTINEL:
|
|
175
|
+
m[k] = val
|
|
176
|
+
|
|
177
|
+
return m
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
try:
|
|
181
|
+
SymbolInfo.model_rebuild()
|
|
182
|
+
except NameError:
|
|
183
|
+
pass
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 49cb8840cf95
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .logosyncresponse import LogoSyncResponse, LogoSyncResponseTypedDict
|
|
7
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
8
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
9
|
+
import pydantic
|
|
10
|
+
from pydantic import model_serializer
|
|
11
|
+
from typing import Callable, Optional
|
|
12
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class SyncLogosRequestTypedDict(TypedDict):
|
|
16
|
+
fields: str
|
|
17
|
+
r"""Comma-separated list of logo asset fields to return. Common values:
|
|
18
|
+
- `logo_light` — full logo for light backgrounds.
|
|
19
|
+
- `logo_dark` — full logo for dark backgrounds.
|
|
20
|
+
- `mark_light` — square/icon mark for light backgrounds.
|
|
21
|
+
- `mark_dark` — square/icon mark for dark backgrounds.
|
|
22
|
+
|
|
23
|
+
Other provider-defined fields may also be supported — pass any field name the upstream image catalog exposes.
|
|
24
|
+
"""
|
|
25
|
+
updated_since: NotRequired[int]
|
|
26
|
+
r"""Only return logos updated since this Unix timestamp"""
|
|
27
|
+
composite_auto: NotRequired[bool]
|
|
28
|
+
r"""Whether to auto-generate composite logo marks. Use true when you need fallback visuals for symbols without a standard logo."""
|
|
29
|
+
composite_radius: NotRequired[int]
|
|
30
|
+
r"""Corner radius for generated composite logos. Enter a value from 0 to 50 to match your UI style."""
|
|
31
|
+
scale: NotRequired[str]
|
|
32
|
+
r"""Image scale for returned logo URLs. Use higher scale values for high-density displays."""
|
|
33
|
+
page: NotRequired[int]
|
|
34
|
+
r"""Zero-based page offset. Enter 0 for the first page of results."""
|
|
35
|
+
page_size: NotRequired[int]
|
|
36
|
+
r"""Number of results per page. Use this to control pagination size in list views. (1-1000)"""
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class SyncLogosRequest(BaseModel):
|
|
40
|
+
fields: Annotated[
|
|
41
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
42
|
+
]
|
|
43
|
+
r"""Comma-separated list of logo asset fields to return. Common values:
|
|
44
|
+
- `logo_light` — full logo for light backgrounds.
|
|
45
|
+
- `logo_dark` — full logo for dark backgrounds.
|
|
46
|
+
- `mark_light` — square/icon mark for light backgrounds.
|
|
47
|
+
- `mark_dark` — square/icon mark for dark backgrounds.
|
|
48
|
+
|
|
49
|
+
Other provider-defined fields may also be supported — pass any field name the upstream image catalog exposes.
|
|
50
|
+
"""
|
|
51
|
+
|
|
52
|
+
updated_since: Annotated[
|
|
53
|
+
Optional[int],
|
|
54
|
+
pydantic.Field(alias="updatedSince"),
|
|
55
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
56
|
+
] = None
|
|
57
|
+
r"""Only return logos updated since this Unix timestamp"""
|
|
58
|
+
|
|
59
|
+
composite_auto: Annotated[
|
|
60
|
+
Optional[bool],
|
|
61
|
+
pydantic.Field(alias="compositeAuto"),
|
|
62
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
63
|
+
] = False
|
|
64
|
+
r"""Whether to auto-generate composite logo marks. Use true when you need fallback visuals for symbols without a standard logo."""
|
|
65
|
+
|
|
66
|
+
composite_radius: Annotated[
|
|
67
|
+
Optional[int],
|
|
68
|
+
pydantic.Field(alias="compositeRadius"),
|
|
69
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
70
|
+
] = None
|
|
71
|
+
r"""Corner radius for generated composite logos. Enter a value from 0 to 50 to match your UI style."""
|
|
72
|
+
|
|
73
|
+
scale: Annotated[
|
|
74
|
+
Optional[str],
|
|
75
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
76
|
+
] = None
|
|
77
|
+
r"""Image scale for returned logo URLs. Use higher scale values for high-density displays."""
|
|
78
|
+
|
|
79
|
+
page: Annotated[
|
|
80
|
+
Optional[int],
|
|
81
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
82
|
+
] = None
|
|
83
|
+
r"""Zero-based page offset. Enter 0 for the first page of results."""
|
|
84
|
+
|
|
85
|
+
page_size: Annotated[
|
|
86
|
+
Optional[int],
|
|
87
|
+
pydantic.Field(alias="pageSize"),
|
|
88
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
89
|
+
] = None
|
|
90
|
+
r"""Number of results per page. Use this to control pagination size in list views. (1-1000)"""
|
|
91
|
+
|
|
92
|
+
@model_serializer(mode="wrap")
|
|
93
|
+
def serialize_model(self, handler):
|
|
94
|
+
optional_fields = set(
|
|
95
|
+
[
|
|
96
|
+
"updatedSince",
|
|
97
|
+
"compositeAuto",
|
|
98
|
+
"compositeRadius",
|
|
99
|
+
"scale",
|
|
100
|
+
"page",
|
|
101
|
+
"pageSize",
|
|
102
|
+
]
|
|
103
|
+
)
|
|
104
|
+
serialized = handler(self)
|
|
105
|
+
m = {}
|
|
106
|
+
|
|
107
|
+
for n, f in type(self).model_fields.items():
|
|
108
|
+
k = f.alias or n
|
|
109
|
+
val = serialized.get(k, serialized.get(n))
|
|
110
|
+
|
|
111
|
+
if val != UNSET_SENTINEL:
|
|
112
|
+
if val is not None or k not in optional_fields:
|
|
113
|
+
m[k] = val
|
|
114
|
+
|
|
115
|
+
return m
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
class SyncLogosResponseTypedDict(TypedDict):
|
|
119
|
+
http_meta: HTTPMetadataTypedDict
|
|
120
|
+
logo_sync_response: NotRequired[LogoSyncResponseTypedDict]
|
|
121
|
+
r"""Successful response"""
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
class SyncLogosResponse(BaseModel):
|
|
125
|
+
next: Callable[[], Optional[SyncLogosResponse]]
|
|
126
|
+
|
|
127
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
128
|
+
|
|
129
|
+
logo_sync_response: Optional[LogoSyncResponse] = None
|
|
130
|
+
r"""Successful response"""
|
|
131
|
+
|
|
132
|
+
@model_serializer(mode="wrap")
|
|
133
|
+
def serialize_model(self, handler):
|
|
134
|
+
optional_fields = set(["LogoSyncResponse"])
|
|
135
|
+
serialized = handler(self)
|
|
136
|
+
m = {}
|
|
137
|
+
|
|
138
|
+
for n, f in type(self).model_fields.items():
|
|
139
|
+
k = f.alias or n
|
|
140
|
+
val = serialized.get(k, serialized.get(n))
|
|
141
|
+
|
|
142
|
+
if val != UNSET_SENTINEL:
|
|
143
|
+
if val is not None or k not in optional_fields:
|
|
144
|
+
m[k] = val
|
|
145
|
+
|
|
146
|
+
return m
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: d5c653e302da
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
6
|
+
from pydantic import model_serializer
|
|
7
|
+
from typing import List, Optional
|
|
8
|
+
from typing_extensions import NotRequired, TypedDict
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class TechnicalIndicatorResponseTypedDict(TypedDict):
|
|
12
|
+
r"""Technical indicator values for a symbol over a time range, as returned by Finnhub; the keys present depend on the requested indicator."""
|
|
13
|
+
|
|
14
|
+
sma: NotRequired[List[float]]
|
|
15
|
+
r"""Simple moving average values, one per timestamp in t."""
|
|
16
|
+
t: NotRequired[List[int]]
|
|
17
|
+
r"""Timestamps corresponding to each indicator value."""
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class TechnicalIndicatorResponse(BaseModel):
|
|
21
|
+
r"""Technical indicator values for a symbol over a time range, as returned by Finnhub; the keys present depend on the requested indicator."""
|
|
22
|
+
|
|
23
|
+
sma: Optional[List[float]] = None
|
|
24
|
+
r"""Simple moving average values, one per timestamp in t."""
|
|
25
|
+
|
|
26
|
+
t: Optional[List[int]] = None
|
|
27
|
+
r"""Timestamps corresponding to each indicator value."""
|
|
28
|
+
|
|
29
|
+
@model_serializer(mode="wrap")
|
|
30
|
+
def serialize_model(self, handler):
|
|
31
|
+
optional_fields = set(["sma", "t"])
|
|
32
|
+
serialized = handler(self)
|
|
33
|
+
m = {}
|
|
34
|
+
|
|
35
|
+
for n, f in type(self).model_fields.items():
|
|
36
|
+
k = f.alias or n
|
|
37
|
+
val = serialized.get(k, serialized.get(n))
|
|
38
|
+
|
|
39
|
+
if val != UNSET_SENTINEL:
|
|
40
|
+
if val is not None or k not in optional_fields:
|
|
41
|
+
m[k] = val
|
|
42
|
+
|
|
43
|
+
return m
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 246217a13ad1
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from enum import Enum
|
|
6
|
+
from finance_dev import utils
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class TechnicalIndicatorType(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
10
|
+
r"""Technical indicator slug (e.g. `sma`, `ema`, `rsi`, `macd`, `bbands`). Pass this with the indicator endpoint to compute that indicator over the requested bars."""
|
|
11
|
+
|
|
12
|
+
SMA = "sma"
|
|
13
|
+
EMA = "ema"
|
|
14
|
+
RSI = "rsi"
|
|
15
|
+
MACD = "macd"
|
|
16
|
+
BBANDS = "bbands"
|
|
17
|
+
STOCH = "stoch"
|
|
18
|
+
ADX = "adx"
|
|
19
|
+
CCI = "cci"
|
|
20
|
+
WILLR = "willr"
|
|
21
|
+
MFI = "mfi"
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 0d3cf537973f
|
|
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 PointTypedDict(TypedDict):
|
|
13
|
+
aprice: NotRequired[float]
|
|
14
|
+
r"""Price at pattern point A."""
|
|
15
|
+
atime: NotRequired[int]
|
|
16
|
+
r"""Timestamp of pattern point A as an integer from the provider."""
|
|
17
|
+
bprice: NotRequired[int]
|
|
18
|
+
r"""Price at pattern point B."""
|
|
19
|
+
btime: NotRequired[int]
|
|
20
|
+
r"""Timestamp of pattern point B as an integer from the provider."""
|
|
21
|
+
cprice: NotRequired[int]
|
|
22
|
+
r"""Price at pattern point C."""
|
|
23
|
+
ctime: NotRequired[int]
|
|
24
|
+
r"""Timestamp of pattern point C as an integer from the provider."""
|
|
25
|
+
dprice: NotRequired[float]
|
|
26
|
+
r"""Price at pattern point D."""
|
|
27
|
+
dtime: NotRequired[int]
|
|
28
|
+
r"""Timestamp of pattern point D as an integer from the provider."""
|
|
29
|
+
end_price: NotRequired[int]
|
|
30
|
+
r"""Price at the end of the pattern."""
|
|
31
|
+
end_time: NotRequired[int]
|
|
32
|
+
r"""Timestamp of the end of the pattern as an integer from the provider."""
|
|
33
|
+
entry: NotRequired[int]
|
|
34
|
+
r"""Suggested entry price for the pattern."""
|
|
35
|
+
eprice: NotRequired[int]
|
|
36
|
+
r"""Price at pattern point E."""
|
|
37
|
+
etime: NotRequired[int]
|
|
38
|
+
r"""Timestamp of pattern point E as an integer from the provider."""
|
|
39
|
+
mature: NotRequired[int]
|
|
40
|
+
r"""Provider flag indicating whether the pattern is mature."""
|
|
41
|
+
patternname: NotRequired[str]
|
|
42
|
+
r"""Name of the detected pattern."""
|
|
43
|
+
patterntype: NotRequired[str]
|
|
44
|
+
r"""Type of the detected pattern."""
|
|
45
|
+
profit1: NotRequired[int]
|
|
46
|
+
r"""First profit target price for the pattern."""
|
|
47
|
+
profit2: NotRequired[int]
|
|
48
|
+
r"""Second profit target price for the pattern."""
|
|
49
|
+
sort_time: NotRequired[int]
|
|
50
|
+
r"""Provider timestamp used for sorting patterns."""
|
|
51
|
+
start_price: NotRequired[int]
|
|
52
|
+
r"""Price at the start of the pattern."""
|
|
53
|
+
start_time: NotRequired[int]
|
|
54
|
+
r"""Timestamp of the start of the pattern as an integer from the provider."""
|
|
55
|
+
status: NotRequired[str]
|
|
56
|
+
r"""Status string from the upstream data provider — typically `OK` for a successful response. Treat any other value as an error indicator alongside the HTTP status code."""
|
|
57
|
+
stoploss: NotRequired[int]
|
|
58
|
+
r"""Suggested stop-loss price for the pattern."""
|
|
59
|
+
symbol: NotRequired[str]
|
|
60
|
+
r"""Ticker symbol the pattern was detected for."""
|
|
61
|
+
terminal: NotRequired[int]
|
|
62
|
+
r"""Provider flag indicating whether the pattern is terminal."""
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
class Point(BaseModel):
|
|
66
|
+
aprice: Optional[float] = None
|
|
67
|
+
r"""Price at pattern point A."""
|
|
68
|
+
|
|
69
|
+
atime: Optional[int] = None
|
|
70
|
+
r"""Timestamp of pattern point A as an integer from the provider."""
|
|
71
|
+
|
|
72
|
+
bprice: Optional[int] = None
|
|
73
|
+
r"""Price at pattern point B."""
|
|
74
|
+
|
|
75
|
+
btime: Optional[int] = None
|
|
76
|
+
r"""Timestamp of pattern point B as an integer from the provider."""
|
|
77
|
+
|
|
78
|
+
cprice: Optional[int] = None
|
|
79
|
+
r"""Price at pattern point C."""
|
|
80
|
+
|
|
81
|
+
ctime: Optional[int] = None
|
|
82
|
+
r"""Timestamp of pattern point C as an integer from the provider."""
|
|
83
|
+
|
|
84
|
+
dprice: Optional[float] = None
|
|
85
|
+
r"""Price at pattern point D."""
|
|
86
|
+
|
|
87
|
+
dtime: Optional[int] = None
|
|
88
|
+
r"""Timestamp of pattern point D as an integer from the provider."""
|
|
89
|
+
|
|
90
|
+
end_price: Optional[int] = None
|
|
91
|
+
r"""Price at the end of the pattern."""
|
|
92
|
+
|
|
93
|
+
end_time: Optional[int] = None
|
|
94
|
+
r"""Timestamp of the end of the pattern as an integer from the provider."""
|
|
95
|
+
|
|
96
|
+
entry: Optional[int] = None
|
|
97
|
+
r"""Suggested entry price for the pattern."""
|
|
98
|
+
|
|
99
|
+
eprice: Optional[int] = None
|
|
100
|
+
r"""Price at pattern point E."""
|
|
101
|
+
|
|
102
|
+
etime: Optional[int] = None
|
|
103
|
+
r"""Timestamp of pattern point E as an integer from the provider."""
|
|
104
|
+
|
|
105
|
+
mature: Optional[int] = None
|
|
106
|
+
r"""Provider flag indicating whether the pattern is mature."""
|
|
107
|
+
|
|
108
|
+
patternname: Optional[str] = None
|
|
109
|
+
r"""Name of the detected pattern."""
|
|
110
|
+
|
|
111
|
+
patterntype: Optional[str] = None
|
|
112
|
+
r"""Type of the detected pattern."""
|
|
113
|
+
|
|
114
|
+
profit1: Optional[int] = None
|
|
115
|
+
r"""First profit target price for the pattern."""
|
|
116
|
+
|
|
117
|
+
profit2: Optional[int] = None
|
|
118
|
+
r"""Second profit target price for the pattern."""
|
|
119
|
+
|
|
120
|
+
sort_time: Annotated[Optional[int], pydantic.Field(alias="sortTime")] = None
|
|
121
|
+
r"""Provider timestamp used for sorting patterns."""
|
|
122
|
+
|
|
123
|
+
start_price: Optional[int] = None
|
|
124
|
+
r"""Price at the start of the pattern."""
|
|
125
|
+
|
|
126
|
+
start_time: Optional[int] = None
|
|
127
|
+
r"""Timestamp of the start of the pattern as an integer from the provider."""
|
|
128
|
+
|
|
129
|
+
status: Optional[str] = None
|
|
130
|
+
r"""Status string from the upstream data provider — typically `OK` for a successful response. Treat any other value as an error indicator alongside the HTTP status code."""
|
|
131
|
+
|
|
132
|
+
stoploss: Optional[int] = None
|
|
133
|
+
r"""Suggested stop-loss price for the pattern."""
|
|
134
|
+
|
|
135
|
+
symbol: Optional[str] = None
|
|
136
|
+
r"""Ticker symbol the pattern was detected for."""
|
|
137
|
+
|
|
138
|
+
terminal: Optional[int] = None
|
|
139
|
+
r"""Provider flag indicating whether the pattern is terminal."""
|
|
140
|
+
|
|
141
|
+
@model_serializer(mode="wrap")
|
|
142
|
+
def serialize_model(self, handler):
|
|
143
|
+
optional_fields = set(
|
|
144
|
+
[
|
|
145
|
+
"aprice",
|
|
146
|
+
"atime",
|
|
147
|
+
"bprice",
|
|
148
|
+
"btime",
|
|
149
|
+
"cprice",
|
|
150
|
+
"ctime",
|
|
151
|
+
"dprice",
|
|
152
|
+
"dtime",
|
|
153
|
+
"end_price",
|
|
154
|
+
"end_time",
|
|
155
|
+
"entry",
|
|
156
|
+
"eprice",
|
|
157
|
+
"etime",
|
|
158
|
+
"mature",
|
|
159
|
+
"patternname",
|
|
160
|
+
"patterntype",
|
|
161
|
+
"profit1",
|
|
162
|
+
"profit2",
|
|
163
|
+
"sortTime",
|
|
164
|
+
"start_price",
|
|
165
|
+
"start_time",
|
|
166
|
+
"status",
|
|
167
|
+
"stoploss",
|
|
168
|
+
"symbol",
|
|
169
|
+
"terminal",
|
|
170
|
+
]
|
|
171
|
+
)
|
|
172
|
+
serialized = handler(self)
|
|
173
|
+
m = {}
|
|
174
|
+
|
|
175
|
+
for n, f in type(self).model_fields.items():
|
|
176
|
+
k = f.alias or n
|
|
177
|
+
val = serialized.get(k, serialized.get(n))
|
|
178
|
+
|
|
179
|
+
if val != UNSET_SENTINEL:
|
|
180
|
+
if val is not None or k not in optional_fields:
|
|
181
|
+
m[k] = val
|
|
182
|
+
|
|
183
|
+
return m
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
class TechnicalPatternsResponseDataTypedDict(TypedDict):
|
|
187
|
+
r"""Pattern recognition payload."""
|
|
188
|
+
|
|
189
|
+
points: NotRequired[List[PointTypedDict]]
|
|
190
|
+
r"""List of detected pattern points."""
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
class TechnicalPatternsResponseData(BaseModel):
|
|
194
|
+
r"""Pattern recognition payload."""
|
|
195
|
+
|
|
196
|
+
points: Optional[List[Point]] = None
|
|
197
|
+
r"""List of detected pattern points."""
|
|
198
|
+
|
|
199
|
+
@model_serializer(mode="wrap")
|
|
200
|
+
def serialize_model(self, handler):
|
|
201
|
+
optional_fields = set(["points"])
|
|
202
|
+
serialized = handler(self)
|
|
203
|
+
m = {}
|
|
204
|
+
|
|
205
|
+
for n, f in type(self).model_fields.items():
|
|
206
|
+
k = f.alias or n
|
|
207
|
+
val = serialized.get(k, serialized.get(n))
|
|
208
|
+
|
|
209
|
+
if val != UNSET_SENTINEL:
|
|
210
|
+
if val is not None or k not in optional_fields:
|
|
211
|
+
m[k] = val
|
|
212
|
+
|
|
213
|
+
return m
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
class TechnicalPatternsResponseTypedDict(TypedDict):
|
|
217
|
+
r"""Chart patterns detected by Finnhub pattern recognition for a symbol and resolution."""
|
|
218
|
+
|
|
219
|
+
data: NotRequired[TechnicalPatternsResponseDataTypedDict]
|
|
220
|
+
r"""Pattern recognition payload."""
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
class TechnicalPatternsResponse(BaseModel):
|
|
224
|
+
r"""Chart patterns detected by Finnhub pattern recognition for a symbol and resolution."""
|
|
225
|
+
|
|
226
|
+
data: Optional[TechnicalPatternsResponseData] = None
|
|
227
|
+
r"""Pattern recognition payload."""
|
|
228
|
+
|
|
229
|
+
@model_serializer(mode="wrap")
|
|
230
|
+
def serialize_model(self, handler):
|
|
231
|
+
optional_fields = set(["data"])
|
|
232
|
+
serialized = handler(self)
|
|
233
|
+
m = {}
|
|
234
|
+
|
|
235
|
+
for n, f in type(self).model_fields.items():
|
|
236
|
+
k = f.alias or n
|
|
237
|
+
val = serialized.get(k, serialized.get(n))
|
|
238
|
+
|
|
239
|
+
if val != UNSET_SENTINEL:
|
|
240
|
+
if val is not None or k not in optional_fields:
|
|
241
|
+
m[k] = val
|
|
242
|
+
|
|
243
|
+
return m
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
try:
|
|
247
|
+
Point.model_rebuild()
|
|
248
|
+
except NameError:
|
|
249
|
+
pass
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 9a857d7cfa6e
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from enum import Enum
|
|
6
|
+
from finance_dev import utils
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class TenderOfferIdentifierType(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
10
|
+
r"""Which kind of identifier you are filtering by. Provide the matching value in the identifier field:
|
|
11
|
+
- `Symbol` — exchange ticker (e.g. `AAPL`).
|
|
12
|
+
- `CUSIP` — 9-character U.S./Canadian security identifier.
|
|
13
|
+
- `ISIN` — 12-character international identifier.
|
|
14
|
+
- `SEDOL` — 7-character UK identifier.
|
|
15
|
+
- `Valoren` — Swiss identifier.
|
|
16
|
+
- `FIGI` — Bloomberg Financial Instrument Global Identifier.
|
|
17
|
+
- `CompositeFIGI` — country-level composite FIGI.
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
SYMBOL = "Symbol"
|
|
21
|
+
CUSIP = "CUSIP"
|
|
22
|
+
ISIN = "ISIN"
|
|
23
|
+
SEDOL = "SEDOL"
|
|
24
|
+
VALOREN = "Valoren"
|
|
25
|
+
FIGI = "FIGI"
|
|
26
|
+
COMPOSITE_FIGI = "CompositeFIGI"
|