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,63 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 9e8021994692
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .ipocalendarresponse import IpoCalendarResponse, IpoCalendarResponseTypedDict
|
|
7
|
+
from datetime import date
|
|
8
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
9
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
10
|
+
import pydantic
|
|
11
|
+
from pydantic import model_serializer
|
|
12
|
+
from typing import Optional
|
|
13
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class GetIpoCalendarRequestTypedDict(TypedDict):
|
|
17
|
+
from_: date
|
|
18
|
+
r"""Start date in YYYY-MM-DD format. Enter the first date to include in the research window."""
|
|
19
|
+
to: date
|
|
20
|
+
r"""End date in YYYY-MM-DD format. Enter the last date to include in the research window."""
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class GetIpoCalendarRequest(BaseModel):
|
|
24
|
+
from_: Annotated[
|
|
25
|
+
date,
|
|
26
|
+
pydantic.Field(alias="from"),
|
|
27
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
28
|
+
]
|
|
29
|
+
r"""Start date in YYYY-MM-DD format. Enter the first date to include in the research window."""
|
|
30
|
+
|
|
31
|
+
to: Annotated[
|
|
32
|
+
date, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
33
|
+
]
|
|
34
|
+
r"""End date in YYYY-MM-DD format. Enter the last date to include in the research window."""
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
class GetIpoCalendarResponseTypedDict(TypedDict):
|
|
38
|
+
http_meta: HTTPMetadataTypedDict
|
|
39
|
+
ipo_calendar_response: NotRequired[IpoCalendarResponseTypedDict]
|
|
40
|
+
r"""IPO calendar."""
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
class GetIpoCalendarResponse(BaseModel):
|
|
44
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
45
|
+
|
|
46
|
+
ipo_calendar_response: Optional[IpoCalendarResponse] = None
|
|
47
|
+
r"""IPO calendar."""
|
|
48
|
+
|
|
49
|
+
@model_serializer(mode="wrap")
|
|
50
|
+
def serialize_model(self, handler):
|
|
51
|
+
optional_fields = set(["IpoCalendarResponse"])
|
|
52
|
+
serialized = handler(self)
|
|
53
|
+
m = {}
|
|
54
|
+
|
|
55
|
+
for n, f in type(self).model_fields.items():
|
|
56
|
+
k = f.alias or n
|
|
57
|
+
val = serialized.get(k, serialized.get(n))
|
|
58
|
+
|
|
59
|
+
if val != UNSET_SENTINEL:
|
|
60
|
+
if val is not None or k not in optional_fields:
|
|
61
|
+
m[k] = val
|
|
62
|
+
|
|
63
|
+
return m
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: ee3d958cb43b
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .lobbyingresponse import LobbyingResponse, LobbyingResponseTypedDict
|
|
7
|
+
from datetime import date
|
|
8
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
9
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
10
|
+
import pydantic
|
|
11
|
+
from pydantic import model_serializer
|
|
12
|
+
from typing import Optional
|
|
13
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class GetLobbyingRequestTypedDict(TypedDict):
|
|
17
|
+
symbol: str
|
|
18
|
+
r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`."""
|
|
19
|
+
from_: date
|
|
20
|
+
r"""Start of the date window, inclusive. Format: `YYYY-MM-DD` (e.g. `2024-01-01`)."""
|
|
21
|
+
to: date
|
|
22
|
+
r"""End of the date window, inclusive. Format: `YYYY-MM-DD` (e.g. `2024-12-31`)."""
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class GetLobbyingRequest(BaseModel):
|
|
26
|
+
symbol: Annotated[
|
|
27
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
28
|
+
]
|
|
29
|
+
r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`."""
|
|
30
|
+
|
|
31
|
+
from_: Annotated[
|
|
32
|
+
date,
|
|
33
|
+
pydantic.Field(alias="from"),
|
|
34
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
35
|
+
]
|
|
36
|
+
r"""Start of the date window, inclusive. Format: `YYYY-MM-DD` (e.g. `2024-01-01`)."""
|
|
37
|
+
|
|
38
|
+
to: Annotated[
|
|
39
|
+
date, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
40
|
+
]
|
|
41
|
+
r"""End of the date window, inclusive. Format: `YYYY-MM-DD` (e.g. `2024-12-31`)."""
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
class GetLobbyingResponseTypedDict(TypedDict):
|
|
45
|
+
http_meta: HTTPMetadataTypedDict
|
|
46
|
+
lobbying_response: NotRequired[LobbyingResponseTypedDict]
|
|
47
|
+
r"""Lobbying data."""
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
class GetLobbyingResponse(BaseModel):
|
|
51
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
52
|
+
|
|
53
|
+
lobbying_response: Optional[LobbyingResponse] = None
|
|
54
|
+
r"""Lobbying data."""
|
|
55
|
+
|
|
56
|
+
@model_serializer(mode="wrap")
|
|
57
|
+
def serialize_model(self, handler):
|
|
58
|
+
optional_fields = set(["LobbyingResponse"])
|
|
59
|
+
serialized = handler(self)
|
|
60
|
+
m = {}
|
|
61
|
+
|
|
62
|
+
for n, f in type(self).model_fields.items():
|
|
63
|
+
k = f.alias or n
|
|
64
|
+
val = serialized.get(k, serialized.get(n))
|
|
65
|
+
|
|
66
|
+
if val != UNSET_SENTINEL:
|
|
67
|
+
if val is not None or k not in optional_fields:
|
|
68
|
+
m[k] = val
|
|
69
|
+
|
|
70
|
+
return m
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 6dc936e47440
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .marketbreadthresponse import MarketBreadthResponse, MarketBreadthResponseTypedDict
|
|
7
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
8
|
+
import pydantic
|
|
9
|
+
from pydantic import model_serializer
|
|
10
|
+
from typing import Optional
|
|
11
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class GetMarketBreadthResponseTypedDict(TypedDict):
|
|
15
|
+
http_meta: HTTPMetadataTypedDict
|
|
16
|
+
market_breadth_response: NotRequired[MarketBreadthResponseTypedDict]
|
|
17
|
+
r"""Market breadth data retrieved successfully"""
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetMarketBreadthResponse(BaseModel):
|
|
21
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
22
|
+
|
|
23
|
+
market_breadth_response: Optional[MarketBreadthResponse] = None
|
|
24
|
+
r"""Market breadth data retrieved successfully"""
|
|
25
|
+
|
|
26
|
+
@model_serializer(mode="wrap")
|
|
27
|
+
def serialize_model(self, handler):
|
|
28
|
+
optional_fields = set(["MarketBreadthResponse"])
|
|
29
|
+
serialized = handler(self)
|
|
30
|
+
m = {}
|
|
31
|
+
|
|
32
|
+
for n, f in type(self).model_fields.items():
|
|
33
|
+
k = f.alias or n
|
|
34
|
+
val = serialized.get(k, serialized.get(n))
|
|
35
|
+
|
|
36
|
+
if val != UNSET_SENTINEL:
|
|
37
|
+
if val is not None or k not in optional_fields:
|
|
38
|
+
m[k] = val
|
|
39
|
+
|
|
40
|
+
return m
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 06a06f748ecb
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .exchangecode import ExchangeCode
|
|
6
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
7
|
+
from .marketholidayresponse import MarketHolidayResponse, MarketHolidayResponseTypedDict
|
|
8
|
+
from finance_dev import models
|
|
9
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
10
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
11
|
+
import pydantic
|
|
12
|
+
from pydantic import field_serializer, model_serializer
|
|
13
|
+
from typing import Optional
|
|
14
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class GetMarketHolidaysRequestTypedDict(TypedDict):
|
|
18
|
+
exchange: ExchangeCode
|
|
19
|
+
r"""exchange code (case-insensitive). Select from the Try it dropdown or use any value from the supported exchange list in the API reference page."""
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class GetMarketHolidaysRequest(BaseModel):
|
|
23
|
+
exchange: Annotated[
|
|
24
|
+
ExchangeCode,
|
|
25
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
26
|
+
] = ExchangeCode.US
|
|
27
|
+
r"""exchange code (case-insensitive). Select from the Try it dropdown or use any value from the supported exchange list in the API reference page."""
|
|
28
|
+
|
|
29
|
+
@field_serializer("exchange")
|
|
30
|
+
def serialize_exchange(self, value):
|
|
31
|
+
if isinstance(value, str):
|
|
32
|
+
try:
|
|
33
|
+
return models.ExchangeCode(value)
|
|
34
|
+
except ValueError:
|
|
35
|
+
return value
|
|
36
|
+
return value
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class GetMarketHolidaysResponseTypedDict(TypedDict):
|
|
40
|
+
http_meta: HTTPMetadataTypedDict
|
|
41
|
+
market_holiday_response: NotRequired[MarketHolidayResponseTypedDict]
|
|
42
|
+
r"""Successful response"""
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
class GetMarketHolidaysResponse(BaseModel):
|
|
46
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
47
|
+
|
|
48
|
+
market_holiday_response: Optional[MarketHolidayResponse] = None
|
|
49
|
+
r"""Successful response"""
|
|
50
|
+
|
|
51
|
+
@model_serializer(mode="wrap")
|
|
52
|
+
def serialize_model(self, handler):
|
|
53
|
+
optional_fields = set(["MarketHolidayResponse"])
|
|
54
|
+
serialized = handler(self)
|
|
55
|
+
m = {}
|
|
56
|
+
|
|
57
|
+
for n, f in type(self).model_fields.items():
|
|
58
|
+
k = f.alias or n
|
|
59
|
+
val = serialized.get(k, serialized.get(n))
|
|
60
|
+
|
|
61
|
+
if val != UNSET_SENTINEL:
|
|
62
|
+
if val is not None or k not in optional_fields:
|
|
63
|
+
m[k] = val
|
|
64
|
+
|
|
65
|
+
return m
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 0e3779069030
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .exchangecode import ExchangeCode
|
|
6
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
7
|
+
from .marketstatus import MarketStatus, MarketStatusTypedDict
|
|
8
|
+
from finance_dev import models
|
|
9
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
10
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
11
|
+
import pydantic
|
|
12
|
+
from pydantic import field_serializer, model_serializer
|
|
13
|
+
from typing import Optional
|
|
14
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class GetMarketStatusRequestTypedDict(TypedDict):
|
|
18
|
+
exchange: ExchangeCode
|
|
19
|
+
r"""exchange code (case-insensitive). Select from the Try it dropdown or use any value from the supported exchange list in the API reference page."""
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class GetMarketStatusRequest(BaseModel):
|
|
23
|
+
exchange: Annotated[
|
|
24
|
+
ExchangeCode,
|
|
25
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
26
|
+
] = ExchangeCode.US
|
|
27
|
+
r"""exchange code (case-insensitive). Select from the Try it dropdown or use any value from the supported exchange list in the API reference page."""
|
|
28
|
+
|
|
29
|
+
@field_serializer("exchange")
|
|
30
|
+
def serialize_exchange(self, value):
|
|
31
|
+
if isinstance(value, str):
|
|
32
|
+
try:
|
|
33
|
+
return models.ExchangeCode(value)
|
|
34
|
+
except ValueError:
|
|
35
|
+
return value
|
|
36
|
+
return value
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class GetMarketStatusResponseTypedDict(TypedDict):
|
|
40
|
+
http_meta: HTTPMetadataTypedDict
|
|
41
|
+
market_status: NotRequired[MarketStatusTypedDict]
|
|
42
|
+
r"""Successful response"""
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
class GetMarketStatusResponse(BaseModel):
|
|
46
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
47
|
+
|
|
48
|
+
market_status: Optional[MarketStatus] = None
|
|
49
|
+
r"""Successful response"""
|
|
50
|
+
|
|
51
|
+
@model_serializer(mode="wrap")
|
|
52
|
+
def serialize_model(self, handler):
|
|
53
|
+
optional_fields = set(["MarketStatus"])
|
|
54
|
+
serialized = handler(self)
|
|
55
|
+
m = {}
|
|
56
|
+
|
|
57
|
+
for n, f in type(self).model_fields.items():
|
|
58
|
+
k = f.alias or n
|
|
59
|
+
val = serialized.get(k, serialized.get(n))
|
|
60
|
+
|
|
61
|
+
if val != UNSET_SENTINEL:
|
|
62
|
+
if val is not None or k not in optional_fields:
|
|
63
|
+
m[k] = val
|
|
64
|
+
|
|
65
|
+
return m
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: fcefd0f1edf4
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .mergersandacquisitionsresponse import (
|
|
7
|
+
MergersAndAcquisitionsResponse,
|
|
8
|
+
MergersAndAcquisitionsResponseTypedDict,
|
|
9
|
+
)
|
|
10
|
+
from datetime import date
|
|
11
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
12
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
13
|
+
import pydantic
|
|
14
|
+
from pydantic import model_serializer
|
|
15
|
+
from typing import Callable, Optional
|
|
16
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class GetMergersAndAcquisitionsRequestTypedDict(TypedDict):
|
|
20
|
+
date_from: NotRequired[date]
|
|
21
|
+
r"""Start date in YYYY-MM-DD format. Enter the first date to include in the research window."""
|
|
22
|
+
date_to: NotRequired[date]
|
|
23
|
+
r"""End date in YYYY-MM-DD format. Enter the last date to include in the research window."""
|
|
24
|
+
tickers: NotRequired[str]
|
|
25
|
+
r"""Comma-separated ticker symbols, such as AAPL,MSFT. Use this to request or filter multiple companies in one call."""
|
|
26
|
+
page: NotRequired[int]
|
|
27
|
+
r"""Zero-based page offset. Enter 0 for the first page of results."""
|
|
28
|
+
page_size: NotRequired[int]
|
|
29
|
+
r"""Number of results per page. Use this to control pagination size in list views. (1-1000)"""
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
class GetMergersAndAcquisitionsRequest(BaseModel):
|
|
33
|
+
date_from: Annotated[
|
|
34
|
+
Optional[date],
|
|
35
|
+
pydantic.Field(alias="dateFrom"),
|
|
36
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
37
|
+
] = None
|
|
38
|
+
r"""Start date in YYYY-MM-DD format. Enter the first date to include in the research window."""
|
|
39
|
+
|
|
40
|
+
date_to: Annotated[
|
|
41
|
+
Optional[date],
|
|
42
|
+
pydantic.Field(alias="dateTo"),
|
|
43
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
44
|
+
] = None
|
|
45
|
+
r"""End date in YYYY-MM-DD format. Enter the last date to include in the research window."""
|
|
46
|
+
|
|
47
|
+
tickers: Annotated[
|
|
48
|
+
Optional[str],
|
|
49
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
50
|
+
] = None
|
|
51
|
+
r"""Comma-separated ticker symbols, such as AAPL,MSFT. Use this to request or filter multiple companies in one call."""
|
|
52
|
+
|
|
53
|
+
page: Annotated[
|
|
54
|
+
Optional[int],
|
|
55
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
56
|
+
] = None
|
|
57
|
+
r"""Zero-based page offset. Enter 0 for the first page of results."""
|
|
58
|
+
|
|
59
|
+
page_size: Annotated[
|
|
60
|
+
Optional[int],
|
|
61
|
+
pydantic.Field(alias="pageSize"),
|
|
62
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
63
|
+
] = None
|
|
64
|
+
r"""Number of results per page. Use this to control pagination size in list views. (1-1000)"""
|
|
65
|
+
|
|
66
|
+
@model_serializer(mode="wrap")
|
|
67
|
+
def serialize_model(self, handler):
|
|
68
|
+
optional_fields = set(["dateFrom", "dateTo", "tickers", "page", "pageSize"])
|
|
69
|
+
serialized = handler(self)
|
|
70
|
+
m = {}
|
|
71
|
+
|
|
72
|
+
for n, f in type(self).model_fields.items():
|
|
73
|
+
k = f.alias or n
|
|
74
|
+
val = serialized.get(k, serialized.get(n))
|
|
75
|
+
|
|
76
|
+
if val != UNSET_SENTINEL:
|
|
77
|
+
if val is not None or k not in optional_fields:
|
|
78
|
+
m[k] = val
|
|
79
|
+
|
|
80
|
+
return m
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
class GetMergersAndAcquisitionsResponseTypedDict(TypedDict):
|
|
84
|
+
http_meta: HTTPMetadataTypedDict
|
|
85
|
+
mergers_and_acquisitions_response: NotRequired[
|
|
86
|
+
MergersAndAcquisitionsResponseTypedDict
|
|
87
|
+
]
|
|
88
|
+
r"""Successful response with mergers and acquisitions data"""
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
class GetMergersAndAcquisitionsResponse(BaseModel):
|
|
92
|
+
next: Callable[[], Optional[GetMergersAndAcquisitionsResponse]]
|
|
93
|
+
|
|
94
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
95
|
+
|
|
96
|
+
mergers_and_acquisitions_response: Optional[MergersAndAcquisitionsResponse] = None
|
|
97
|
+
r"""Successful response with mergers and acquisitions data"""
|
|
98
|
+
|
|
99
|
+
@model_serializer(mode="wrap")
|
|
100
|
+
def serialize_model(self, handler):
|
|
101
|
+
optional_fields = set(["MergersAndAcquisitionsResponse"])
|
|
102
|
+
serialized = handler(self)
|
|
103
|
+
m = {}
|
|
104
|
+
|
|
105
|
+
for n, f in type(self).model_fields.items():
|
|
106
|
+
k = f.alias or n
|
|
107
|
+
val = serialized.get(k, serialized.get(n))
|
|
108
|
+
|
|
109
|
+
if val != UNSET_SENTINEL:
|
|
110
|
+
if val is not None or k not in optional_fields:
|
|
111
|
+
m[k] = val
|
|
112
|
+
|
|
113
|
+
return m
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: f46724a2ebe5
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .netinflowresponse import NetInflowResponse, NetInflowResponseTypedDict
|
|
7
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
8
|
+
import pydantic
|
|
9
|
+
from pydantic import model_serializer
|
|
10
|
+
from typing import Optional
|
|
11
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class GetNetInflowResponseTypedDict(TypedDict):
|
|
15
|
+
http_meta: HTTPMetadataTypedDict
|
|
16
|
+
net_inflow_response: NotRequired[NetInflowResponseTypedDict]
|
|
17
|
+
r"""Net inflow data retrieved successfully"""
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetNetInflowResponse(BaseModel):
|
|
21
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
22
|
+
|
|
23
|
+
net_inflow_response: Optional[NetInflowResponse] = None
|
|
24
|
+
r"""Net inflow data retrieved successfully"""
|
|
25
|
+
|
|
26
|
+
@model_serializer(mode="wrap")
|
|
27
|
+
def serialize_model(self, handler):
|
|
28
|
+
optional_fields = set(["NetInflowResponse"])
|
|
29
|
+
serialized = handler(self)
|
|
30
|
+
m = {}
|
|
31
|
+
|
|
32
|
+
for n, f in type(self).model_fields.items():
|
|
33
|
+
k = f.alias or n
|
|
34
|
+
val = serialized.get(k, serialized.get(n))
|
|
35
|
+
|
|
36
|
+
if val != UNSET_SENTINEL:
|
|
37
|
+
if val is not None or k not in optional_fields:
|
|
38
|
+
m[k] = val
|
|
39
|
+
|
|
40
|
+
return m
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 1fbacc52010c
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .newsitem import NewsItem, NewsItemTypedDict
|
|
7
|
+
from .newstypeenum import NewsTypeEnum
|
|
8
|
+
from finance_dev import models
|
|
9
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
10
|
+
from finance_dev.utils import FieldMetadata, PathParamMetadata, QueryParamMetadata
|
|
11
|
+
import pydantic
|
|
12
|
+
from pydantic import field_serializer, model_serializer
|
|
13
|
+
from typing import Optional
|
|
14
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class GetNewsByIDRequestTypedDict(TypedDict):
|
|
18
|
+
id: str
|
|
19
|
+
r"""Unique news item ID (must be numeric)"""
|
|
20
|
+
news_type: NewsTypeEnum
|
|
21
|
+
r"""Type of news item to retrieve. Must be either 'news' or 'press_release'."""
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class GetNewsByIDRequest(BaseModel):
|
|
25
|
+
id: Annotated[
|
|
26
|
+
str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
|
|
27
|
+
]
|
|
28
|
+
r"""Unique news item ID (must be numeric)"""
|
|
29
|
+
|
|
30
|
+
news_type: Annotated[
|
|
31
|
+
NewsTypeEnum,
|
|
32
|
+
pydantic.Field(alias="newsType"),
|
|
33
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
34
|
+
]
|
|
35
|
+
r"""Type of news item to retrieve. Must be either 'news' or 'press_release'."""
|
|
36
|
+
|
|
37
|
+
@field_serializer("news_type")
|
|
38
|
+
def serialize_news_type(self, value):
|
|
39
|
+
if isinstance(value, str):
|
|
40
|
+
try:
|
|
41
|
+
return models.NewsTypeEnum(value)
|
|
42
|
+
except ValueError:
|
|
43
|
+
return value
|
|
44
|
+
return value
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
class GetNewsByIDResponseTypedDict(TypedDict):
|
|
48
|
+
http_meta: HTTPMetadataTypedDict
|
|
49
|
+
news_item: NotRequired[NewsItemTypedDict]
|
|
50
|
+
r"""News item retrieved successfully"""
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
class GetNewsByIDResponse(BaseModel):
|
|
54
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
55
|
+
|
|
56
|
+
news_item: Optional[NewsItem] = None
|
|
57
|
+
r"""News item retrieved successfully"""
|
|
58
|
+
|
|
59
|
+
@model_serializer(mode="wrap")
|
|
60
|
+
def serialize_model(self, handler):
|
|
61
|
+
optional_fields = set(["NewsItem"])
|
|
62
|
+
serialized = handler(self)
|
|
63
|
+
m = {}
|
|
64
|
+
|
|
65
|
+
for n, f in type(self).model_fields.items():
|
|
66
|
+
k = f.alias or n
|
|
67
|
+
val = serialized.get(k, serialized.get(n))
|
|
68
|
+
|
|
69
|
+
if val != UNSET_SENTINEL:
|
|
70
|
+
if val is not None or k not in optional_fields:
|
|
71
|
+
m[k] = val
|
|
72
|
+
|
|
73
|
+
return m
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 830819395cf1
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .newslistresponse import NewsListResponse, NewsListResponseTypedDict
|
|
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 Optional
|
|
12
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class GetNewsRequestTypedDict(TypedDict):
|
|
16
|
+
symbols: NotRequired[str]
|
|
17
|
+
r"""Comma-separated list of stock symbols to filter news by. Default is `SPY` when omitted. Maximum 10 symbols per request. Each symbol must be a plain uppercase ticker (e.g. `AAPL,TSLA,NVDA`)."""
|
|
18
|
+
topics: NotRequired[str]
|
|
19
|
+
r"""Comma-separated list of topics to filter news. Maximum 10 topics per request. Common topics:
|
|
20
|
+
- `earnings` — earnings releases and reports.
|
|
21
|
+
- `guidance` — forward guidance updates.
|
|
22
|
+
- `mergers_acquisitions` — M&A activity.
|
|
23
|
+
- `dividends` — dividend announcements.
|
|
24
|
+
- `analyst_ratings` — analyst upgrades and downgrades.
|
|
25
|
+
- `ipo` — initial public offerings.
|
|
26
|
+
- `regulatory` — SEC filings, lawsuits, regulatory actions.
|
|
27
|
+
|
|
28
|
+
Topic names depend on the upstream news catalog and may evolve over time.
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
class GetNewsRequest(BaseModel):
|
|
33
|
+
symbols: Annotated[
|
|
34
|
+
Optional[str],
|
|
35
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
36
|
+
] = "SPY"
|
|
37
|
+
r"""Comma-separated list of stock symbols to filter news by. Default is `SPY` when omitted. Maximum 10 symbols per request. Each symbol must be a plain uppercase ticker (e.g. `AAPL,TSLA,NVDA`)."""
|
|
38
|
+
|
|
39
|
+
topics: Annotated[
|
|
40
|
+
Optional[str],
|
|
41
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
42
|
+
] = None
|
|
43
|
+
r"""Comma-separated list of topics to filter news. Maximum 10 topics per request. Common topics:
|
|
44
|
+
- `earnings` — earnings releases and reports.
|
|
45
|
+
- `guidance` — forward guidance updates.
|
|
46
|
+
- `mergers_acquisitions` — M&A activity.
|
|
47
|
+
- `dividends` — dividend announcements.
|
|
48
|
+
- `analyst_ratings` — analyst upgrades and downgrades.
|
|
49
|
+
- `ipo` — initial public offerings.
|
|
50
|
+
- `regulatory` — SEC filings, lawsuits, regulatory actions.
|
|
51
|
+
|
|
52
|
+
Topic names depend on the upstream news catalog and may evolve over time.
|
|
53
|
+
"""
|
|
54
|
+
|
|
55
|
+
@model_serializer(mode="wrap")
|
|
56
|
+
def serialize_model(self, handler):
|
|
57
|
+
optional_fields = set(["symbols", "topics"])
|
|
58
|
+
serialized = handler(self)
|
|
59
|
+
m = {}
|
|
60
|
+
|
|
61
|
+
for n, f in type(self).model_fields.items():
|
|
62
|
+
k = f.alias or n
|
|
63
|
+
val = serialized.get(k, serialized.get(n))
|
|
64
|
+
|
|
65
|
+
if val != UNSET_SENTINEL:
|
|
66
|
+
if val is not None or k not in optional_fields:
|
|
67
|
+
m[k] = val
|
|
68
|
+
|
|
69
|
+
return m
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
class GetNewsResponseTypedDict(TypedDict):
|
|
73
|
+
http_meta: HTTPMetadataTypedDict
|
|
74
|
+
news_list_response: NotRequired[NewsListResponseTypedDict]
|
|
75
|
+
r"""News retrieved successfully"""
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
class GetNewsResponse(BaseModel):
|
|
79
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
80
|
+
|
|
81
|
+
news_list_response: Optional[NewsListResponse] = None
|
|
82
|
+
r"""News retrieved successfully"""
|
|
83
|
+
|
|
84
|
+
@model_serializer(mode="wrap")
|
|
85
|
+
def serialize_model(self, handler):
|
|
86
|
+
optional_fields = set(["NewsListResponse"])
|
|
87
|
+
serialized = handler(self)
|
|
88
|
+
m = {}
|
|
89
|
+
|
|
90
|
+
for n, f in type(self).model_fields.items():
|
|
91
|
+
k = f.alias or n
|
|
92
|
+
val = serialized.get(k, serialized.get(n))
|
|
93
|
+
|
|
94
|
+
if val != UNSET_SENTINEL:
|
|
95
|
+
if val is not None or k not in optional_fields:
|
|
96
|
+
m[k] = val
|
|
97
|
+
|
|
98
|
+
return m
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: ab725eec279c
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .newssentimentresponse import NewsSentimentResponse, NewsSentimentResponseTypedDict
|
|
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 Optional
|
|
12
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class GetNewsSentimentRequestTypedDict(TypedDict):
|
|
16
|
+
symbol: str
|
|
17
|
+
r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`, `TSLA`."""
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetNewsSentimentRequest(BaseModel):
|
|
21
|
+
symbol: Annotated[
|
|
22
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
23
|
+
]
|
|
24
|
+
r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`, `TSLA`."""
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class GetNewsSentimentResponseTypedDict(TypedDict):
|
|
28
|
+
http_meta: HTTPMetadataTypedDict
|
|
29
|
+
news_sentiment_response: NotRequired[NewsSentimentResponseTypedDict]
|
|
30
|
+
r"""News sentiment data."""
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class GetNewsSentimentResponse(BaseModel):
|
|
34
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
35
|
+
|
|
36
|
+
news_sentiment_response: Optional[NewsSentimentResponse] = None
|
|
37
|
+
r"""News sentiment data."""
|
|
38
|
+
|
|
39
|
+
@model_serializer(mode="wrap")
|
|
40
|
+
def serialize_model(self, handler):
|
|
41
|
+
optional_fields = set(["NewsSentimentResponse"])
|
|
42
|
+
serialized = handler(self)
|
|
43
|
+
m = {}
|
|
44
|
+
|
|
45
|
+
for n, f in type(self).model_fields.items():
|
|
46
|
+
k = f.alias or n
|
|
47
|
+
val = serialized.get(k, serialized.get(n))
|
|
48
|
+
|
|
49
|
+
if val != UNSET_SENTINEL:
|
|
50
|
+
if val is not None or k not in optional_fields:
|
|
51
|
+
m[k] = val
|
|
52
|
+
|
|
53
|
+
return m
|