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,164 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: b6bcd50acf16
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .getratingsresponse import GetRatingsResponse, GetRatingsResponseTypedDict
|
|
6
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
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 Callable, Optional
|
|
13
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class GetRatingsRequestTypedDict(TypedDict):
|
|
17
|
+
tickers: NotRequired[str]
|
|
18
|
+
r"""Comma-separated list of ticker symbols to filter by"""
|
|
19
|
+
page: NotRequired[int]
|
|
20
|
+
r"""Page number for pagination (0-based)"""
|
|
21
|
+
page_size: NotRequired[int]
|
|
22
|
+
r"""Number of results per page. Use this to control pagination size in list views."""
|
|
23
|
+
date_: NotRequired[date]
|
|
24
|
+
r"""Filter by specific date (YYYY-MM-DD)"""
|
|
25
|
+
date_from: NotRequired[date]
|
|
26
|
+
r"""Start date for date range (YYYY-MM-DD)"""
|
|
27
|
+
date_to: NotRequired[date]
|
|
28
|
+
r"""End date for date range (YYYY-MM-DD)"""
|
|
29
|
+
importance: NotRequired[int]
|
|
30
|
+
r"""Minimum importance level to include. Use higher values to filter for more market-moving events or ratings."""
|
|
31
|
+
action: NotRequired[str]
|
|
32
|
+
r"""Rating action filter. Use it to return only upgrades, downgrades, initiations, or other supported action types."""
|
|
33
|
+
analyst_id: NotRequired[str]
|
|
34
|
+
r"""Comma-separated analyst IDs. Use this to limit insight results to specific analysts. to filter by"""
|
|
35
|
+
firm_id: NotRequired[str]
|
|
36
|
+
r"""Comma-separated firm IDs to filter by"""
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class GetRatingsRequest(BaseModel):
|
|
40
|
+
tickers: Annotated[
|
|
41
|
+
Optional[str],
|
|
42
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
43
|
+
] = None
|
|
44
|
+
r"""Comma-separated list of ticker symbols to filter by"""
|
|
45
|
+
|
|
46
|
+
page: Annotated[
|
|
47
|
+
Optional[int],
|
|
48
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
49
|
+
] = None
|
|
50
|
+
r"""Page number for pagination (0-based)"""
|
|
51
|
+
|
|
52
|
+
page_size: Annotated[
|
|
53
|
+
Optional[int],
|
|
54
|
+
pydantic.Field(alias="pageSize"),
|
|
55
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
56
|
+
] = None
|
|
57
|
+
r"""Number of results per page. Use this to control pagination size in list views."""
|
|
58
|
+
|
|
59
|
+
date_: Annotated[
|
|
60
|
+
Optional[date],
|
|
61
|
+
pydantic.Field(alias="date"),
|
|
62
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
63
|
+
] = None
|
|
64
|
+
r"""Filter by specific date (YYYY-MM-DD)"""
|
|
65
|
+
|
|
66
|
+
date_from: Annotated[
|
|
67
|
+
Optional[date],
|
|
68
|
+
pydantic.Field(alias="dateFrom"),
|
|
69
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
70
|
+
] = None
|
|
71
|
+
r"""Start date for date range (YYYY-MM-DD)"""
|
|
72
|
+
|
|
73
|
+
date_to: Annotated[
|
|
74
|
+
Optional[date],
|
|
75
|
+
pydantic.Field(alias="dateTo"),
|
|
76
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
77
|
+
] = None
|
|
78
|
+
r"""End date for date range (YYYY-MM-DD)"""
|
|
79
|
+
|
|
80
|
+
importance: Annotated[
|
|
81
|
+
Optional[int],
|
|
82
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
83
|
+
] = None
|
|
84
|
+
r"""Minimum importance level to include. Use higher values to filter for more market-moving events or ratings."""
|
|
85
|
+
|
|
86
|
+
action: Annotated[
|
|
87
|
+
Optional[str],
|
|
88
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
89
|
+
] = None
|
|
90
|
+
r"""Rating action filter. Use it to return only upgrades, downgrades, initiations, or other supported action types."""
|
|
91
|
+
|
|
92
|
+
analyst_id: Annotated[
|
|
93
|
+
Optional[str],
|
|
94
|
+
pydantic.Field(alias="analystId"),
|
|
95
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
96
|
+
] = None
|
|
97
|
+
r"""Comma-separated analyst IDs. Use this to limit insight results to specific analysts. to filter by"""
|
|
98
|
+
|
|
99
|
+
firm_id: Annotated[
|
|
100
|
+
Optional[str],
|
|
101
|
+
pydantic.Field(alias="firmId"),
|
|
102
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
103
|
+
] = None
|
|
104
|
+
r"""Comma-separated firm IDs to filter by"""
|
|
105
|
+
|
|
106
|
+
@model_serializer(mode="wrap")
|
|
107
|
+
def serialize_model(self, handler):
|
|
108
|
+
optional_fields = set(
|
|
109
|
+
[
|
|
110
|
+
"tickers",
|
|
111
|
+
"page",
|
|
112
|
+
"pageSize",
|
|
113
|
+
"date",
|
|
114
|
+
"dateFrom",
|
|
115
|
+
"dateTo",
|
|
116
|
+
"importance",
|
|
117
|
+
"action",
|
|
118
|
+
"analystId",
|
|
119
|
+
"firmId",
|
|
120
|
+
]
|
|
121
|
+
)
|
|
122
|
+
serialized = handler(self)
|
|
123
|
+
m = {}
|
|
124
|
+
|
|
125
|
+
for n, f in type(self).model_fields.items():
|
|
126
|
+
k = f.alias or n
|
|
127
|
+
val = serialized.get(k, serialized.get(n))
|
|
128
|
+
|
|
129
|
+
if val != UNSET_SENTINEL:
|
|
130
|
+
if val is not None or k not in optional_fields:
|
|
131
|
+
m[k] = val
|
|
132
|
+
|
|
133
|
+
return m
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
class GetRatingsResponseResponseTypedDict(TypedDict):
|
|
137
|
+
http_meta: HTTPMetadataTypedDict
|
|
138
|
+
get_ratings_response: NotRequired[GetRatingsResponseTypedDict]
|
|
139
|
+
r"""Analyst ratings. Response has a ratings array; each item may include id, date, time, ticker, exchange, name, currency, action_pt, action_company, rating_current, rating_prior, pt_current, pt_current_adjusted, pt_prior, pt_prior_adjusted, analyst, analyst_id, analyst_name, importance, updated. Some fields may be absent when empty."""
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
class GetRatingsResponseResponse(BaseModel):
|
|
143
|
+
next: Callable[[], Optional[GetRatingsResponseResponse]]
|
|
144
|
+
|
|
145
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
146
|
+
|
|
147
|
+
get_ratings_response: Optional[GetRatingsResponse] = None
|
|
148
|
+
r"""Analyst ratings. Response has a ratings array; each item may include id, date, time, ticker, exchange, name, currency, action_pt, action_company, rating_current, rating_prior, pt_current, pt_current_adjusted, pt_prior, pt_prior_adjusted, analyst, analyst_id, analyst_name, importance, updated. Some fields may be absent when empty."""
|
|
149
|
+
|
|
150
|
+
@model_serializer(mode="wrap")
|
|
151
|
+
def serialize_model(self, handler):
|
|
152
|
+
optional_fields = set(["GetRatingsResponse"])
|
|
153
|
+
serialized = handler(self)
|
|
154
|
+
m = {}
|
|
155
|
+
|
|
156
|
+
for n, f in type(self).model_fields.items():
|
|
157
|
+
k = f.alias or n
|
|
158
|
+
val = serialized.get(k, serialized.get(n))
|
|
159
|
+
|
|
160
|
+
if val != UNSET_SENTINEL:
|
|
161
|
+
if val is not None or k not in optional_fields:
|
|
162
|
+
m[k] = val
|
|
163
|
+
|
|
164
|
+
return m
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 3d850711bfe7
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .rating import Rating, RatingTypedDict
|
|
6
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
7
|
+
from pydantic import model_serializer
|
|
8
|
+
from typing import List, Optional
|
|
9
|
+
from typing_extensions import NotRequired, TypedDict
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class GetRatingsResponseTypedDict(TypedDict):
|
|
13
|
+
r"""Response for GET /v1/analytics/ratings. Only non-empty fields appear in each rating; notes and ratings_accuracy are omitted when empty."""
|
|
14
|
+
|
|
15
|
+
ratings: NotRequired[List[RatingTypedDict]]
|
|
16
|
+
r"""Array of analyst rating objects"""
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class GetRatingsResponse(BaseModel):
|
|
20
|
+
r"""Response for GET /v1/analytics/ratings. Only non-empty fields appear in each rating; notes and ratings_accuracy are omitted when empty."""
|
|
21
|
+
|
|
22
|
+
ratings: Optional[List[Rating]] = None
|
|
23
|
+
r"""Array of analyst rating objects"""
|
|
24
|
+
|
|
25
|
+
@model_serializer(mode="wrap")
|
|
26
|
+
def serialize_model(self, handler):
|
|
27
|
+
optional_fields = set(["ratings"])
|
|
28
|
+
serialized = handler(self)
|
|
29
|
+
m = {}
|
|
30
|
+
|
|
31
|
+
for n, f in type(self).model_fields.items():
|
|
32
|
+
k = f.alias or n
|
|
33
|
+
val = serialized.get(k, serialized.get(n))
|
|
34
|
+
|
|
35
|
+
if val != UNSET_SENTINEL:
|
|
36
|
+
if val is not None or k not in optional_fields:
|
|
37
|
+
m[k] = val
|
|
38
|
+
|
|
39
|
+
return m
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 775ecb18def3
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .financialsreportedresponse import (
|
|
6
|
+
FinancialsReportedResponse,
|
|
7
|
+
FinancialsReportedResponseTypedDict,
|
|
8
|
+
)
|
|
9
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
10
|
+
from .reportingfrequency import ReportingFrequency
|
|
11
|
+
from datetime import date
|
|
12
|
+
from finance_dev import models
|
|
13
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
14
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
15
|
+
import pydantic
|
|
16
|
+
from pydantic import field_serializer, model_serializer
|
|
17
|
+
from typing import Optional
|
|
18
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class GetReportedFinancialsRequestTypedDict(TypedDict):
|
|
22
|
+
symbol: NotRequired[str]
|
|
23
|
+
r"""Stock symbol, such as AAPL. Use it to narrow results to one company. Required when both `cik` and `accessNumber` are omitted."""
|
|
24
|
+
cik: NotRequired[str]
|
|
25
|
+
r"""SEC CIK. Optional when `symbol` or `accessNumber` is provided."""
|
|
26
|
+
access_number: NotRequired[str]
|
|
27
|
+
r"""SEC access number. Optional when `symbol` or `cik` is provided."""
|
|
28
|
+
freq: NotRequired[ReportingFrequency]
|
|
29
|
+
r"""Optional reporting frequency filter. Use it to limit results to annual or quarterly reports."""
|
|
30
|
+
from_: NotRequired[date]
|
|
31
|
+
r"""Optional start date in YYYY-MM-DD format. Use it to begin the research window."""
|
|
32
|
+
to: NotRequired[date]
|
|
33
|
+
r"""Optional end date in YYYY-MM-DD format. Use it to end the research window."""
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class GetReportedFinancialsRequest(BaseModel):
|
|
37
|
+
symbol: Annotated[
|
|
38
|
+
Optional[str],
|
|
39
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
40
|
+
] = None
|
|
41
|
+
r"""Stock symbol, such as AAPL. Use it to narrow results to one company. Required when both `cik` and `accessNumber` are omitted."""
|
|
42
|
+
|
|
43
|
+
cik: Annotated[
|
|
44
|
+
Optional[str],
|
|
45
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
46
|
+
] = None
|
|
47
|
+
r"""SEC CIK. Optional when `symbol` or `accessNumber` is provided."""
|
|
48
|
+
|
|
49
|
+
access_number: Annotated[
|
|
50
|
+
Optional[str],
|
|
51
|
+
pydantic.Field(alias="accessNumber"),
|
|
52
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
53
|
+
] = None
|
|
54
|
+
r"""SEC access number. Optional when `symbol` or `cik` is provided."""
|
|
55
|
+
|
|
56
|
+
freq: Annotated[
|
|
57
|
+
Optional[ReportingFrequency],
|
|
58
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
59
|
+
] = None
|
|
60
|
+
r"""Optional reporting frequency filter. Use it to limit results to annual or quarterly reports."""
|
|
61
|
+
|
|
62
|
+
from_: Annotated[
|
|
63
|
+
Optional[date],
|
|
64
|
+
pydantic.Field(alias="from"),
|
|
65
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
66
|
+
] = None
|
|
67
|
+
r"""Optional start date in YYYY-MM-DD format. Use it to begin the research window."""
|
|
68
|
+
|
|
69
|
+
to: Annotated[
|
|
70
|
+
Optional[date],
|
|
71
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
72
|
+
] = None
|
|
73
|
+
r"""Optional end date in YYYY-MM-DD format. Use it to end the research window."""
|
|
74
|
+
|
|
75
|
+
@field_serializer("freq")
|
|
76
|
+
def serialize_freq(self, value):
|
|
77
|
+
if isinstance(value, str):
|
|
78
|
+
try:
|
|
79
|
+
return models.ReportingFrequency(value)
|
|
80
|
+
except ValueError:
|
|
81
|
+
return value
|
|
82
|
+
return value
|
|
83
|
+
|
|
84
|
+
@model_serializer(mode="wrap")
|
|
85
|
+
def serialize_model(self, handler):
|
|
86
|
+
optional_fields = set(["symbol", "cik", "accessNumber", "freq", "from", "to"])
|
|
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
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
class GetReportedFinancialsResponseTypedDict(TypedDict):
|
|
102
|
+
http_meta: HTTPMetadataTypedDict
|
|
103
|
+
financials_reported_response: NotRequired[FinancialsReportedResponseTypedDict]
|
|
104
|
+
r"""Reported financials."""
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
class GetReportedFinancialsResponse(BaseModel):
|
|
108
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
109
|
+
|
|
110
|
+
financials_reported_response: Optional[FinancialsReportedResponse] = None
|
|
111
|
+
r"""Reported financials."""
|
|
112
|
+
|
|
113
|
+
@model_serializer(mode="wrap")
|
|
114
|
+
def serialize_model(self, handler):
|
|
115
|
+
optional_fields = set(["FinancialsReportedResponse"])
|
|
116
|
+
serialized = handler(self)
|
|
117
|
+
m = {}
|
|
118
|
+
|
|
119
|
+
for n, f in type(self).model_fields.items():
|
|
120
|
+
k = f.alias or n
|
|
121
|
+
val = serialized.get(k, serialized.get(n))
|
|
122
|
+
|
|
123
|
+
if val != UNSET_SENTINEL:
|
|
124
|
+
if val is not None or k not in optional_fields:
|
|
125
|
+
m[k] = val
|
|
126
|
+
|
|
127
|
+
return m
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 84d32b0b9b75
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .financialsrevenuebreakdownresponse import (
|
|
6
|
+
FinancialsRevenueBreakdownResponse,
|
|
7
|
+
FinancialsRevenueBreakdownResponseTypedDict,
|
|
8
|
+
)
|
|
9
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
10
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
11
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
12
|
+
import pydantic
|
|
13
|
+
from pydantic import model_serializer
|
|
14
|
+
from typing import Optional
|
|
15
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class GetRevenueBreakdownRequestTypedDict(TypedDict):
|
|
19
|
+
symbol: NotRequired[str]
|
|
20
|
+
r"""Stock ticker symbol to research, such as AAPL. Required when `cik` is omitted."""
|
|
21
|
+
cik: NotRequired[str]
|
|
22
|
+
r"""SEC CIK. Optional when `symbol` is provided."""
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class GetRevenueBreakdownRequest(BaseModel):
|
|
26
|
+
symbol: Annotated[
|
|
27
|
+
Optional[str],
|
|
28
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
29
|
+
] = None
|
|
30
|
+
r"""Stock ticker symbol to research, such as AAPL. Required when `cik` is omitted."""
|
|
31
|
+
|
|
32
|
+
cik: Annotated[
|
|
33
|
+
Optional[str],
|
|
34
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
35
|
+
] = None
|
|
36
|
+
r"""SEC CIK. Optional when `symbol` is provided."""
|
|
37
|
+
|
|
38
|
+
@model_serializer(mode="wrap")
|
|
39
|
+
def serialize_model(self, handler):
|
|
40
|
+
optional_fields = set(["symbol", "cik"])
|
|
41
|
+
serialized = handler(self)
|
|
42
|
+
m = {}
|
|
43
|
+
|
|
44
|
+
for n, f in type(self).model_fields.items():
|
|
45
|
+
k = f.alias or n
|
|
46
|
+
val = serialized.get(k, serialized.get(n))
|
|
47
|
+
|
|
48
|
+
if val != UNSET_SENTINEL:
|
|
49
|
+
if val is not None or k not in optional_fields:
|
|
50
|
+
m[k] = val
|
|
51
|
+
|
|
52
|
+
return m
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
class GetRevenueBreakdownResponseTypedDict(TypedDict):
|
|
56
|
+
http_meta: HTTPMetadataTypedDict
|
|
57
|
+
financials_revenue_breakdown_response: NotRequired[
|
|
58
|
+
FinancialsRevenueBreakdownResponseTypedDict
|
|
59
|
+
]
|
|
60
|
+
r"""Revenue breakdown data."""
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
class GetRevenueBreakdownResponse(BaseModel):
|
|
64
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
65
|
+
|
|
66
|
+
financials_revenue_breakdown_response: Optional[
|
|
67
|
+
FinancialsRevenueBreakdownResponse
|
|
68
|
+
] = None
|
|
69
|
+
r"""Revenue breakdown data."""
|
|
70
|
+
|
|
71
|
+
@model_serializer(mode="wrap")
|
|
72
|
+
def serialize_model(self, handler):
|
|
73
|
+
optional_fields = set(["FinancialsRevenueBreakdownResponse"])
|
|
74
|
+
serialized = handler(self)
|
|
75
|
+
m = {}
|
|
76
|
+
|
|
77
|
+
for n, f in type(self).model_fields.items():
|
|
78
|
+
k = f.alias or n
|
|
79
|
+
val = serialized.get(k, serialized.get(n))
|
|
80
|
+
|
|
81
|
+
if val != UNSET_SENTINEL:
|
|
82
|
+
if val is not None or k not in optional_fields:
|
|
83
|
+
m[k] = val
|
|
84
|
+
|
|
85
|
+
return m
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 4d7fc89b4158
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .reportingfrequency import ReportingFrequency
|
|
7
|
+
from .revenueestimatesresponse import (
|
|
8
|
+
RevenueEstimatesResponse,
|
|
9
|
+
RevenueEstimatesResponseTypedDict,
|
|
10
|
+
)
|
|
11
|
+
from finance_dev import models
|
|
12
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
13
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
14
|
+
import pydantic
|
|
15
|
+
from pydantic import field_serializer, model_serializer
|
|
16
|
+
from typing import Optional
|
|
17
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetRevenueEstimatesRequestTypedDict(TypedDict):
|
|
21
|
+
symbol: str
|
|
22
|
+
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`."""
|
|
23
|
+
freq: NotRequired[ReportingFrequency]
|
|
24
|
+
r"""(Optional) Frequency: annual, quarterly"""
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class GetRevenueEstimatesRequest(BaseModel):
|
|
28
|
+
symbol: Annotated[
|
|
29
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
30
|
+
]
|
|
31
|
+
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`."""
|
|
32
|
+
|
|
33
|
+
freq: Annotated[
|
|
34
|
+
Optional[ReportingFrequency],
|
|
35
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
36
|
+
] = None
|
|
37
|
+
r"""(Optional) Frequency: annual, quarterly"""
|
|
38
|
+
|
|
39
|
+
@field_serializer("freq")
|
|
40
|
+
def serialize_freq(self, value):
|
|
41
|
+
if isinstance(value, str):
|
|
42
|
+
try:
|
|
43
|
+
return models.ReportingFrequency(value)
|
|
44
|
+
except ValueError:
|
|
45
|
+
return value
|
|
46
|
+
return value
|
|
47
|
+
|
|
48
|
+
@model_serializer(mode="wrap")
|
|
49
|
+
def serialize_model(self, handler):
|
|
50
|
+
optional_fields = set(["freq"])
|
|
51
|
+
serialized = handler(self)
|
|
52
|
+
m = {}
|
|
53
|
+
|
|
54
|
+
for n, f in type(self).model_fields.items():
|
|
55
|
+
k = f.alias or n
|
|
56
|
+
val = serialized.get(k, serialized.get(n))
|
|
57
|
+
|
|
58
|
+
if val != UNSET_SENTINEL:
|
|
59
|
+
if val is not None or k not in optional_fields:
|
|
60
|
+
m[k] = val
|
|
61
|
+
|
|
62
|
+
return m
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
class GetRevenueEstimatesResponseTypedDict(TypedDict):
|
|
66
|
+
http_meta: HTTPMetadataTypedDict
|
|
67
|
+
revenue_estimates_response: NotRequired[RevenueEstimatesResponseTypedDict]
|
|
68
|
+
r"""Successful response"""
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
class GetRevenueEstimatesResponse(BaseModel):
|
|
72
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
73
|
+
|
|
74
|
+
revenue_estimates_response: Optional[RevenueEstimatesResponse] = None
|
|
75
|
+
r"""Successful response"""
|
|
76
|
+
|
|
77
|
+
@model_serializer(mode="wrap")
|
|
78
|
+
def serialize_model(self, handler):
|
|
79
|
+
optional_fields = set(["RevenueEstimatesResponse"])
|
|
80
|
+
serialized = handler(self)
|
|
81
|
+
m = {}
|
|
82
|
+
|
|
83
|
+
for n, f in type(self).model_fields.items():
|
|
84
|
+
k = f.alias or n
|
|
85
|
+
val = serialized.get(k, serialized.get(n))
|
|
86
|
+
|
|
87
|
+
if val != UNSET_SENTINEL:
|
|
88
|
+
if val is not None or k not in optional_fields:
|
|
89
|
+
m[k] = val
|
|
90
|
+
|
|
91
|
+
return m
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 0c33d2160755
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .secfilingsresponse import SecFilingsResponse, SecFilingsResponseTypedDict
|
|
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 GetSecFilingsRequestTypedDict(TypedDict):
|
|
17
|
+
symbol: NotRequired[str]
|
|
18
|
+
r"""Stock symbol (optional if cik provided)"""
|
|
19
|
+
cik: NotRequired[str]
|
|
20
|
+
r"""Central Index Key (optional if symbol provided)"""
|
|
21
|
+
access_number: NotRequired[str]
|
|
22
|
+
r"""SEC access number to filter by specific filing"""
|
|
23
|
+
form: NotRequired[str]
|
|
24
|
+
r"""Form type (e.g. 10-K, 10-Q, 8-K, DEF 14A)"""
|
|
25
|
+
from_: NotRequired[date]
|
|
26
|
+
r"""Start date in YYYY-MM-DD format. Enter the first date to include in the research window."""
|
|
27
|
+
to: NotRequired[date]
|
|
28
|
+
r"""End date in YYYY-MM-DD format. Enter the last date to include in the research window."""
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class GetSecFilingsRequest(BaseModel):
|
|
32
|
+
symbol: Annotated[
|
|
33
|
+
Optional[str],
|
|
34
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
35
|
+
] = None
|
|
36
|
+
r"""Stock symbol (optional if cik provided)"""
|
|
37
|
+
|
|
38
|
+
cik: Annotated[
|
|
39
|
+
Optional[str],
|
|
40
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
41
|
+
] = None
|
|
42
|
+
r"""Central Index Key (optional if symbol provided)"""
|
|
43
|
+
|
|
44
|
+
access_number: Annotated[
|
|
45
|
+
Optional[str],
|
|
46
|
+
pydantic.Field(alias="accessNumber"),
|
|
47
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
48
|
+
] = None
|
|
49
|
+
r"""SEC access number to filter by specific filing"""
|
|
50
|
+
|
|
51
|
+
form: Annotated[
|
|
52
|
+
Optional[str],
|
|
53
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
54
|
+
] = None
|
|
55
|
+
r"""Form type (e.g. 10-K, 10-Q, 8-K, DEF 14A)"""
|
|
56
|
+
|
|
57
|
+
from_: Annotated[
|
|
58
|
+
Optional[date],
|
|
59
|
+
pydantic.Field(alias="from"),
|
|
60
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
61
|
+
] = None
|
|
62
|
+
r"""Start date in YYYY-MM-DD format. Enter the first date to include in the research window."""
|
|
63
|
+
|
|
64
|
+
to: Annotated[
|
|
65
|
+
Optional[date],
|
|
66
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
67
|
+
] = None
|
|
68
|
+
r"""End date in YYYY-MM-DD format. Enter the last date to include in the research window."""
|
|
69
|
+
|
|
70
|
+
@model_serializer(mode="wrap")
|
|
71
|
+
def serialize_model(self, handler):
|
|
72
|
+
optional_fields = set(["symbol", "cik", "accessNumber", "form", "from", "to"])
|
|
73
|
+
serialized = handler(self)
|
|
74
|
+
m = {}
|
|
75
|
+
|
|
76
|
+
for n, f in type(self).model_fields.items():
|
|
77
|
+
k = f.alias or n
|
|
78
|
+
val = serialized.get(k, serialized.get(n))
|
|
79
|
+
|
|
80
|
+
if val != UNSET_SENTINEL:
|
|
81
|
+
if val is not None or k not in optional_fields:
|
|
82
|
+
m[k] = val
|
|
83
|
+
|
|
84
|
+
return m
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
class GetSecFilingsResponseTypedDict(TypedDict):
|
|
88
|
+
http_meta: HTTPMetadataTypedDict
|
|
89
|
+
sec_filings_response: NotRequired[SecFilingsResponseTypedDict]
|
|
90
|
+
r"""SEC filings."""
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
class GetSecFilingsResponse(BaseModel):
|
|
94
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
95
|
+
|
|
96
|
+
sec_filings_response: Optional[SecFilingsResponse] = None
|
|
97
|
+
r"""SEC filings."""
|
|
98
|
+
|
|
99
|
+
@model_serializer(mode="wrap")
|
|
100
|
+
def serialize_model(self, handler):
|
|
101
|
+
optional_fields = set(["SecFilingsResponse"])
|
|
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
|