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,53 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 11d4ad6c3315
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .watchlist import Watchlist, WatchlistTypedDict
|
|
7
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
8
|
+
from finance_dev.utils import FieldMetadata, PathParamMetadata
|
|
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 GetConfigWatchlistByIDRequestTypedDict(TypedDict):
|
|
16
|
+
watchlist_id: int
|
|
17
|
+
r"""The numeric ID of the watchlist to retrieve. You can get this from a previous list/create/update response (the `id` field in the returned watchlist)."""
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetConfigWatchlistByIDRequest(BaseModel):
|
|
21
|
+
watchlist_id: Annotated[
|
|
22
|
+
int, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
|
|
23
|
+
]
|
|
24
|
+
r"""The numeric ID of the watchlist to retrieve. You can get this from a previous list/create/update response (the `id` field in the returned watchlist)."""
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class GetConfigWatchlistByIDResponseTypedDict(TypedDict):
|
|
28
|
+
http_meta: HTTPMetadataTypedDict
|
|
29
|
+
watchlist: NotRequired[WatchlistTypedDict]
|
|
30
|
+
r"""The requested watchlist."""
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class GetConfigWatchlistByIDResponse(BaseModel):
|
|
34
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
35
|
+
|
|
36
|
+
watchlist: Optional[Watchlist] = None
|
|
37
|
+
r"""The requested watchlist."""
|
|
38
|
+
|
|
39
|
+
@model_serializer(mode="wrap")
|
|
40
|
+
def serialize_model(self, handler):
|
|
41
|
+
optional_fields = set(["Watchlist"])
|
|
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
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 412df3b371f1
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .watchlistresponse import WatchlistResponse, WatchlistResponseTypedDict
|
|
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 GetConfigWatchlistsResponseTypedDict(TypedDict):
|
|
15
|
+
http_meta: HTTPMetadataTypedDict
|
|
16
|
+
watchlist_response: NotRequired[WatchlistResponseTypedDict]
|
|
17
|
+
r"""The authenticated user's watchlists."""
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetConfigWatchlistsResponse(BaseModel):
|
|
21
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
22
|
+
|
|
23
|
+
watchlist_response: Optional[WatchlistResponse] = None
|
|
24
|
+
r"""The authenticated user's watchlists."""
|
|
25
|
+
|
|
26
|
+
@model_serializer(mode="wrap")
|
|
27
|
+
def serialize_model(self, handler):
|
|
28
|
+
optional_fields = set(["WatchlistResponse"])
|
|
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: 37517cca6619
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .congressionaltradingresponse import (
|
|
6
|
+
CongressionalTradingResponse,
|
|
7
|
+
CongressionalTradingResponseTypedDict,
|
|
8
|
+
)
|
|
9
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
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 Optional
|
|
16
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class GetCongressionalTradingRequestTypedDict(TypedDict):
|
|
20
|
+
symbol: str
|
|
21
|
+
r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`."""
|
|
22
|
+
from_: date
|
|
23
|
+
r"""Start of the date window, inclusive. Format: `YYYY-MM-DD` (e.g. `2024-01-01`)."""
|
|
24
|
+
to: date
|
|
25
|
+
r"""End of the date window, inclusive. Format: `YYYY-MM-DD` (e.g. `2024-12-31`)."""
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class GetCongressionalTradingRequest(BaseModel):
|
|
29
|
+
symbol: Annotated[
|
|
30
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
31
|
+
]
|
|
32
|
+
r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`."""
|
|
33
|
+
|
|
34
|
+
from_: Annotated[
|
|
35
|
+
date,
|
|
36
|
+
pydantic.Field(alias="from"),
|
|
37
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
38
|
+
]
|
|
39
|
+
r"""Start of the date window, inclusive. Format: `YYYY-MM-DD` (e.g. `2024-01-01`)."""
|
|
40
|
+
|
|
41
|
+
to: Annotated[
|
|
42
|
+
date, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
43
|
+
]
|
|
44
|
+
r"""End of the date window, inclusive. Format: `YYYY-MM-DD` (e.g. `2024-12-31`)."""
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
class GetCongressionalTradingResponseTypedDict(TypedDict):
|
|
48
|
+
http_meta: HTTPMetadataTypedDict
|
|
49
|
+
congressional_trading_response: NotRequired[CongressionalTradingResponseTypedDict]
|
|
50
|
+
r"""Congressional trading data."""
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
class GetCongressionalTradingResponse(BaseModel):
|
|
54
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
55
|
+
|
|
56
|
+
congressional_trading_response: Optional[CongressionalTradingResponse] = None
|
|
57
|
+
r"""Congressional trading data."""
|
|
58
|
+
|
|
59
|
+
@model_serializer(mode="wrap")
|
|
60
|
+
def serialize_model(self, handler):
|
|
61
|
+
optional_fields = set(["CongressionalTradingResponse"])
|
|
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,43 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 6776ce12b20b
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .covid19uscasesresponse import (
|
|
6
|
+
Covid19UsCasesResponse,
|
|
7
|
+
Covid19UsCasesResponseTypedDict,
|
|
8
|
+
)
|
|
9
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
10
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
11
|
+
import pydantic
|
|
12
|
+
from pydantic import model_serializer
|
|
13
|
+
from typing import Optional
|
|
14
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class GetCovid19UsCasesResponseTypedDict(TypedDict):
|
|
18
|
+
http_meta: HTTPMetadataTypedDict
|
|
19
|
+
covid19_us_cases_response: NotRequired[Covid19UsCasesResponseTypedDict]
|
|
20
|
+
r"""COVID-19 US data."""
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class GetCovid19UsCasesResponse(BaseModel):
|
|
24
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
25
|
+
|
|
26
|
+
covid19_us_cases_response: Optional[Covid19UsCasesResponse] = None
|
|
27
|
+
r"""COVID-19 US data."""
|
|
28
|
+
|
|
29
|
+
@model_serializer(mode="wrap")
|
|
30
|
+
def serialize_model(self, handler):
|
|
31
|
+
optional_fields = set(["Covid19UsCasesResponse"])
|
|
32
|
+
serialized = handler(self)
|
|
33
|
+
m = {}
|
|
34
|
+
|
|
35
|
+
for n, f in type(self).model_fields.items():
|
|
36
|
+
k = f.alias or n
|
|
37
|
+
val = serialized.get(k, serialized.get(n))
|
|
38
|
+
|
|
39
|
+
if val != UNSET_SENTINEL:
|
|
40
|
+
if val is not None or k not in optional_fields:
|
|
41
|
+
m[k] = val
|
|
42
|
+
|
|
43
|
+
return m
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 0817b92a2360
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .dailymarketsummaryresponse import (
|
|
6
|
+
DailyMarketSummaryResponse,
|
|
7
|
+
DailyMarketSummaryResponseTypedDict,
|
|
8
|
+
)
|
|
9
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
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 Optional
|
|
16
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class GetDailyMarketSummaryRequestTypedDict(TypedDict):
|
|
20
|
+
date_: date
|
|
21
|
+
r"""Date in YYYY-MM-DD format. Enter the specific calendar date you want to query."""
|
|
22
|
+
adjusted: NotRequired[bool]
|
|
23
|
+
r"""Whether to adjust historical prices for stock splits. Use true for normalized charting and false for raw market data."""
|
|
24
|
+
include_otc: NotRequired[bool]
|
|
25
|
+
r"""Whether to include over-the-counter securities. Use true only when your product needs OTC market coverage."""
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class GetDailyMarketSummaryRequest(BaseModel):
|
|
29
|
+
date_: Annotated[
|
|
30
|
+
date,
|
|
31
|
+
pydantic.Field(alias="date"),
|
|
32
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
33
|
+
]
|
|
34
|
+
r"""Date in YYYY-MM-DD format. Enter the specific calendar date you want to query."""
|
|
35
|
+
|
|
36
|
+
adjusted: Annotated[
|
|
37
|
+
Optional[bool],
|
|
38
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
39
|
+
] = None
|
|
40
|
+
r"""Whether to adjust historical prices for stock splits. Use true for normalized charting and false for raw market data."""
|
|
41
|
+
|
|
42
|
+
include_otc: Annotated[
|
|
43
|
+
Optional[bool],
|
|
44
|
+
pydantic.Field(alias="includeOtc"),
|
|
45
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
46
|
+
] = None
|
|
47
|
+
r"""Whether to include over-the-counter securities. Use true only when your product needs OTC market coverage."""
|
|
48
|
+
|
|
49
|
+
@model_serializer(mode="wrap")
|
|
50
|
+
def serialize_model(self, handler):
|
|
51
|
+
optional_fields = set(["adjusted", "includeOtc"])
|
|
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
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
class GetDailyMarketSummaryResponseTypedDict(TypedDict):
|
|
67
|
+
http_meta: HTTPMetadataTypedDict
|
|
68
|
+
daily_market_summary_response: NotRequired[DailyMarketSummaryResponseTypedDict]
|
|
69
|
+
r"""Successful response"""
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
class GetDailyMarketSummaryResponse(BaseModel):
|
|
73
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
74
|
+
|
|
75
|
+
daily_market_summary_response: Optional[DailyMarketSummaryResponse] = None
|
|
76
|
+
r"""Successful response"""
|
|
77
|
+
|
|
78
|
+
@model_serializer(mode="wrap")
|
|
79
|
+
def serialize_model(self, handler):
|
|
80
|
+
optional_fields = set(["DailyMarketSummaryResponse"])
|
|
81
|
+
serialized = handler(self)
|
|
82
|
+
m = {}
|
|
83
|
+
|
|
84
|
+
for n, f in type(self).model_fields.items():
|
|
85
|
+
k = f.alias or n
|
|
86
|
+
val = serialized.get(k, serialized.get(n))
|
|
87
|
+
|
|
88
|
+
if val != UNSET_SENTINEL:
|
|
89
|
+
if val is not None or k not in optional_fields:
|
|
90
|
+
m[k] = val
|
|
91
|
+
|
|
92
|
+
return m
|
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: a96540b0eca8
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .dividendsresponse import DividendsResponse, DividendsResponseTypedDict
|
|
6
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
7
|
+
from datetime import date
|
|
8
|
+
from enum import Enum
|
|
9
|
+
from finance_dev import models, utils
|
|
10
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
11
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
12
|
+
import pydantic
|
|
13
|
+
from pydantic import field_serializer, model_serializer
|
|
14
|
+
from typing import Callable, Optional
|
|
15
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class DistributionType(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
19
|
+
r"""Exact type: recurring, special, supplemental, irregular, unknown"""
|
|
20
|
+
|
|
21
|
+
RECURRING = "recurring"
|
|
22
|
+
SPECIAL = "special"
|
|
23
|
+
SUPPLEMENTAL = "supplemental"
|
|
24
|
+
IRREGULAR = "irregular"
|
|
25
|
+
UNKNOWN = "unknown"
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class GetDividendsRequestTypedDict(TypedDict):
|
|
29
|
+
ticker: NotRequired[str]
|
|
30
|
+
r"""Single ticker symbol only, such as AAPL. Do not send a comma-separated list here; if you need multiple symbols, use `tickersAnyOf` instead."""
|
|
31
|
+
tickers_any_of: NotRequired[str]
|
|
32
|
+
r"""Comma-separated list of ticker symbols."""
|
|
33
|
+
ticker_from: NotRequired[str]
|
|
34
|
+
r"""Filter tickers >= this value (inclusive)"""
|
|
35
|
+
ticker_after: NotRequired[str]
|
|
36
|
+
r"""Filter tickers > this value (exclusive)"""
|
|
37
|
+
ticker_to: NotRequired[str]
|
|
38
|
+
r"""Filter tickers <= this value (inclusive)"""
|
|
39
|
+
ticker_before: NotRequired[str]
|
|
40
|
+
r"""Filter tickers < this value (exclusive)"""
|
|
41
|
+
ex_dividend_date: NotRequired[date]
|
|
42
|
+
r"""Exact ex-dividend date in YYYY-MM-DD format"""
|
|
43
|
+
ex_dividend_date_from: NotRequired[date]
|
|
44
|
+
r"""Ex-dividend start-date filter. Returns dividends with ex-dividend dates on or after this date."""
|
|
45
|
+
ex_dividend_date_after: NotRequired[date]
|
|
46
|
+
r"""Ex-dividend after-date filter. Returns dividends after this date, excluding the date itself."""
|
|
47
|
+
ex_dividend_date_to: NotRequired[date]
|
|
48
|
+
r"""Ex-dividend end-date filter. Returns dividends with ex-dividend dates on or before this date."""
|
|
49
|
+
ex_dividend_date_before: NotRequired[date]
|
|
50
|
+
r"""Ex-dividend before-date filter. Returns dividends before this date, excluding the date itself."""
|
|
51
|
+
frequency: NotRequired[int]
|
|
52
|
+
r"""Exact frequency (0=irregular, 1=annual, 4=quarterly, 12=monthly)"""
|
|
53
|
+
frequency_min: NotRequired[int]
|
|
54
|
+
r"""Dividend frequency lower-bound filter. Returns records with frequency greater than or equal to this value."""
|
|
55
|
+
frequency_above: NotRequired[int]
|
|
56
|
+
r"""Dividend frequency lower-bound filter. Returns records above this value, excluding the value itself."""
|
|
57
|
+
frequency_max: NotRequired[int]
|
|
58
|
+
r"""Dividend frequency upper-bound filter. Returns records with frequency less than or equal to this value."""
|
|
59
|
+
frequency_below: NotRequired[int]
|
|
60
|
+
r"""Dividend frequency upper-bound filter. Returns records below this value, excluding the value itself."""
|
|
61
|
+
distribution_type: NotRequired[DistributionType]
|
|
62
|
+
r"""Exact type: recurring, special, supplemental, irregular, unknown"""
|
|
63
|
+
distribution_types: NotRequired[str]
|
|
64
|
+
r"""Comma-separated list of distribution types"""
|
|
65
|
+
limit: NotRequired[int]
|
|
66
|
+
r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits. (1-5000)"""
|
|
67
|
+
sort: NotRequired[str]
|
|
68
|
+
r"""A comma-separated list of sort columns. For each column, append `.asc` or `.desc` to specify direction. Defaults to `ticker.asc` when not specified. Examples: `ticker.asc`, `ex_dividend_date.desc`, or `ticker.asc,ex_dividend_date.desc`."""
|
|
69
|
+
next: NotRequired[str]
|
|
70
|
+
r"""Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page."""
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
class GetDividendsRequest(BaseModel):
|
|
74
|
+
ticker: Annotated[
|
|
75
|
+
Optional[str],
|
|
76
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
77
|
+
] = None
|
|
78
|
+
r"""Single ticker symbol only, such as AAPL. Do not send a comma-separated list here; if you need multiple symbols, use `tickersAnyOf` instead."""
|
|
79
|
+
|
|
80
|
+
tickers_any_of: Annotated[
|
|
81
|
+
Optional[str],
|
|
82
|
+
pydantic.Field(alias="tickersAnyOf"),
|
|
83
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
84
|
+
] = None
|
|
85
|
+
r"""Comma-separated list of ticker symbols."""
|
|
86
|
+
|
|
87
|
+
ticker_from: Annotated[
|
|
88
|
+
Optional[str],
|
|
89
|
+
pydantic.Field(alias="tickerFrom"),
|
|
90
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
91
|
+
] = None
|
|
92
|
+
r"""Filter tickers >= this value (inclusive)"""
|
|
93
|
+
|
|
94
|
+
ticker_after: Annotated[
|
|
95
|
+
Optional[str],
|
|
96
|
+
pydantic.Field(alias="tickerAfter"),
|
|
97
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
98
|
+
] = None
|
|
99
|
+
r"""Filter tickers > this value (exclusive)"""
|
|
100
|
+
|
|
101
|
+
ticker_to: Annotated[
|
|
102
|
+
Optional[str],
|
|
103
|
+
pydantic.Field(alias="tickerTo"),
|
|
104
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
105
|
+
] = None
|
|
106
|
+
r"""Filter tickers <= this value (inclusive)"""
|
|
107
|
+
|
|
108
|
+
ticker_before: Annotated[
|
|
109
|
+
Optional[str],
|
|
110
|
+
pydantic.Field(alias="tickerBefore"),
|
|
111
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
112
|
+
] = None
|
|
113
|
+
r"""Filter tickers < this value (exclusive)"""
|
|
114
|
+
|
|
115
|
+
ex_dividend_date: Annotated[
|
|
116
|
+
Optional[date],
|
|
117
|
+
pydantic.Field(alias="exDividendDate"),
|
|
118
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
119
|
+
] = None
|
|
120
|
+
r"""Exact ex-dividend date in YYYY-MM-DD format"""
|
|
121
|
+
|
|
122
|
+
ex_dividend_date_from: Annotated[
|
|
123
|
+
Optional[date],
|
|
124
|
+
pydantic.Field(alias="exDividendDateFrom"),
|
|
125
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
126
|
+
] = None
|
|
127
|
+
r"""Ex-dividend start-date filter. Returns dividends with ex-dividend dates on or after this date."""
|
|
128
|
+
|
|
129
|
+
ex_dividend_date_after: Annotated[
|
|
130
|
+
Optional[date],
|
|
131
|
+
pydantic.Field(alias="exDividendDateAfter"),
|
|
132
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
133
|
+
] = None
|
|
134
|
+
r"""Ex-dividend after-date filter. Returns dividends after this date, excluding the date itself."""
|
|
135
|
+
|
|
136
|
+
ex_dividend_date_to: Annotated[
|
|
137
|
+
Optional[date],
|
|
138
|
+
pydantic.Field(alias="exDividendDateTo"),
|
|
139
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
140
|
+
] = None
|
|
141
|
+
r"""Ex-dividend end-date filter. Returns dividends with ex-dividend dates on or before this date."""
|
|
142
|
+
|
|
143
|
+
ex_dividend_date_before: Annotated[
|
|
144
|
+
Optional[date],
|
|
145
|
+
pydantic.Field(alias="exDividendDateBefore"),
|
|
146
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
147
|
+
] = None
|
|
148
|
+
r"""Ex-dividend before-date filter. Returns dividends before this date, excluding the date itself."""
|
|
149
|
+
|
|
150
|
+
frequency: Annotated[
|
|
151
|
+
Optional[int],
|
|
152
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
153
|
+
] = None
|
|
154
|
+
r"""Exact frequency (0=irregular, 1=annual, 4=quarterly, 12=monthly)"""
|
|
155
|
+
|
|
156
|
+
frequency_min: Annotated[
|
|
157
|
+
Optional[int],
|
|
158
|
+
pydantic.Field(alias="frequencyMin"),
|
|
159
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
160
|
+
] = None
|
|
161
|
+
r"""Dividend frequency lower-bound filter. Returns records with frequency greater than or equal to this value."""
|
|
162
|
+
|
|
163
|
+
frequency_above: Annotated[
|
|
164
|
+
Optional[int],
|
|
165
|
+
pydantic.Field(alias="frequencyAbove"),
|
|
166
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
167
|
+
] = None
|
|
168
|
+
r"""Dividend frequency lower-bound filter. Returns records above this value, excluding the value itself."""
|
|
169
|
+
|
|
170
|
+
frequency_max: Annotated[
|
|
171
|
+
Optional[int],
|
|
172
|
+
pydantic.Field(alias="frequencyMax"),
|
|
173
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
174
|
+
] = None
|
|
175
|
+
r"""Dividend frequency upper-bound filter. Returns records with frequency less than or equal to this value."""
|
|
176
|
+
|
|
177
|
+
frequency_below: Annotated[
|
|
178
|
+
Optional[int],
|
|
179
|
+
pydantic.Field(alias="frequencyBelow"),
|
|
180
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
181
|
+
] = None
|
|
182
|
+
r"""Dividend frequency upper-bound filter. Returns records below this value, excluding the value itself."""
|
|
183
|
+
|
|
184
|
+
distribution_type: Annotated[
|
|
185
|
+
Optional[DistributionType],
|
|
186
|
+
pydantic.Field(alias="distributionType"),
|
|
187
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
188
|
+
] = None
|
|
189
|
+
r"""Exact type: recurring, special, supplemental, irregular, unknown"""
|
|
190
|
+
|
|
191
|
+
distribution_types: Annotated[
|
|
192
|
+
Optional[str],
|
|
193
|
+
pydantic.Field(alias="distributionTypes"),
|
|
194
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
195
|
+
] = None
|
|
196
|
+
r"""Comma-separated list of distribution types"""
|
|
197
|
+
|
|
198
|
+
limit: Annotated[
|
|
199
|
+
Optional[int],
|
|
200
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
201
|
+
] = None
|
|
202
|
+
r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits. (1-5000)"""
|
|
203
|
+
|
|
204
|
+
sort: Annotated[
|
|
205
|
+
Optional[str],
|
|
206
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
207
|
+
] = None
|
|
208
|
+
r"""A comma-separated list of sort columns. For each column, append `.asc` or `.desc` to specify direction. Defaults to `ticker.asc` when not specified. Examples: `ticker.asc`, `ex_dividend_date.desc`, or `ticker.asc,ex_dividend_date.desc`."""
|
|
209
|
+
|
|
210
|
+
next: Annotated[
|
|
211
|
+
Optional[str],
|
|
212
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
213
|
+
] = None
|
|
214
|
+
r"""Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page."""
|
|
215
|
+
|
|
216
|
+
@field_serializer("distribution_type")
|
|
217
|
+
def serialize_distribution_type(self, value):
|
|
218
|
+
if isinstance(value, str):
|
|
219
|
+
try:
|
|
220
|
+
return models.DistributionType(value)
|
|
221
|
+
except ValueError:
|
|
222
|
+
return value
|
|
223
|
+
return value
|
|
224
|
+
|
|
225
|
+
@model_serializer(mode="wrap")
|
|
226
|
+
def serialize_model(self, handler):
|
|
227
|
+
optional_fields = set(
|
|
228
|
+
[
|
|
229
|
+
"ticker",
|
|
230
|
+
"tickersAnyOf",
|
|
231
|
+
"tickerFrom",
|
|
232
|
+
"tickerAfter",
|
|
233
|
+
"tickerTo",
|
|
234
|
+
"tickerBefore",
|
|
235
|
+
"exDividendDate",
|
|
236
|
+
"exDividendDateFrom",
|
|
237
|
+
"exDividendDateAfter",
|
|
238
|
+
"exDividendDateTo",
|
|
239
|
+
"exDividendDateBefore",
|
|
240
|
+
"frequency",
|
|
241
|
+
"frequencyMin",
|
|
242
|
+
"frequencyAbove",
|
|
243
|
+
"frequencyMax",
|
|
244
|
+
"frequencyBelow",
|
|
245
|
+
"distributionType",
|
|
246
|
+
"distributionTypes",
|
|
247
|
+
"limit",
|
|
248
|
+
"sort",
|
|
249
|
+
"next",
|
|
250
|
+
]
|
|
251
|
+
)
|
|
252
|
+
serialized = handler(self)
|
|
253
|
+
m = {}
|
|
254
|
+
|
|
255
|
+
for n, f in type(self).model_fields.items():
|
|
256
|
+
k = f.alias or n
|
|
257
|
+
val = serialized.get(k, serialized.get(n))
|
|
258
|
+
|
|
259
|
+
if val != UNSET_SENTINEL:
|
|
260
|
+
if val is not None or k not in optional_fields:
|
|
261
|
+
m[k] = val
|
|
262
|
+
|
|
263
|
+
return m
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
class GetDividendsResponseTypedDict(TypedDict):
|
|
267
|
+
http_meta: HTTPMetadataTypedDict
|
|
268
|
+
dividends_response: NotRequired[DividendsResponseTypedDict]
|
|
269
|
+
r"""Dividends data."""
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
class GetDividendsResponse(BaseModel):
|
|
273
|
+
next: Callable[[], Optional[GetDividendsResponse]]
|
|
274
|
+
|
|
275
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
276
|
+
|
|
277
|
+
dividends_response: Optional[DividendsResponse] = None
|
|
278
|
+
r"""Dividends data."""
|
|
279
|
+
|
|
280
|
+
@model_serializer(mode="wrap")
|
|
281
|
+
def serialize_model(self, handler):
|
|
282
|
+
optional_fields = set(["DividendsResponse"])
|
|
283
|
+
serialized = handler(self)
|
|
284
|
+
m = {}
|
|
285
|
+
|
|
286
|
+
for n, f in type(self).model_fields.items():
|
|
287
|
+
k = f.alias or n
|
|
288
|
+
val = serialized.get(k, serialized.get(n))
|
|
289
|
+
|
|
290
|
+
if val != UNSET_SENTINEL:
|
|
291
|
+
if val is not None or k not in optional_fields:
|
|
292
|
+
m[k] = val
|
|
293
|
+
|
|
294
|
+
return m
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 00625a320be1
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .earningrelease import EarningRelease, EarningReleaseTypedDict
|
|
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 List, Optional
|
|
13
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class GetEarningsCalendarRequestTypedDict(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
|
+
symbol: NotRequired[str]
|
|
22
|
+
r"""Optional stock symbol to filter results. If not provided, returns earnings for all symbols."""
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class GetEarningsCalendarRequest(BaseModel):
|
|
26
|
+
from_: Annotated[
|
|
27
|
+
date,
|
|
28
|
+
pydantic.Field(alias="from"),
|
|
29
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
30
|
+
]
|
|
31
|
+
r"""Start date in YYYY-MM-DD format. Enter the first date to include in the research window."""
|
|
32
|
+
|
|
33
|
+
to: Annotated[
|
|
34
|
+
date, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
35
|
+
]
|
|
36
|
+
r"""End date in YYYY-MM-DD format. Enter the last date to include in the research window."""
|
|
37
|
+
|
|
38
|
+
symbol: Annotated[
|
|
39
|
+
Optional[str],
|
|
40
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
41
|
+
] = None
|
|
42
|
+
r"""Optional stock symbol to filter results. If not provided, returns earnings for all symbols."""
|
|
43
|
+
|
|
44
|
+
@model_serializer(mode="wrap")
|
|
45
|
+
def serialize_model(self, handler):
|
|
46
|
+
optional_fields = set(["symbol"])
|
|
47
|
+
serialized = handler(self)
|
|
48
|
+
m = {}
|
|
49
|
+
|
|
50
|
+
for n, f in type(self).model_fields.items():
|
|
51
|
+
k = f.alias or n
|
|
52
|
+
val = serialized.get(k, serialized.get(n))
|
|
53
|
+
|
|
54
|
+
if val != UNSET_SENTINEL:
|
|
55
|
+
if val is not None or k not in optional_fields:
|
|
56
|
+
m[k] = val
|
|
57
|
+
|
|
58
|
+
return m
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
class GetEarningsCalendarResponseTypedDict(TypedDict):
|
|
62
|
+
http_meta: HTTPMetadataTypedDict
|
|
63
|
+
get_earnings_calendar_response: NotRequired[List[EarningReleaseTypedDict]]
|
|
64
|
+
r"""Earnings calendar data retrieved successfully"""
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
class GetEarningsCalendarResponse(BaseModel):
|
|
68
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
69
|
+
|
|
70
|
+
get_earnings_calendar_response: Optional[List[EarningRelease]] = None
|
|
71
|
+
r"""Earnings calendar data retrieved successfully"""
|
|
72
|
+
|
|
73
|
+
@model_serializer(mode="wrap")
|
|
74
|
+
def serialize_model(self, handler):
|
|
75
|
+
optional_fields = set(["GetEarningsCalendarResponse"])
|
|
76
|
+
serialized = handler(self)
|
|
77
|
+
m = {}
|
|
78
|
+
|
|
79
|
+
for n, f in type(self).model_fields.items():
|
|
80
|
+
k = f.alias or n
|
|
81
|
+
val = serialized.get(k, serialized.get(n))
|
|
82
|
+
|
|
83
|
+
if val != UNSET_SENTINEL:
|
|
84
|
+
if val is not None or k not in optional_fields:
|
|
85
|
+
m[k] = val
|
|
86
|
+
|
|
87
|
+
return m
|