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,122 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 0a0c0990588d
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .chartbars import ChartBars, ChartBarsTypedDict
|
|
6
|
+
from .chartresolution import ChartResolution
|
|
7
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
8
|
+
from finance_dev import models
|
|
9
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
10
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
11
|
+
import pydantic
|
|
12
|
+
from pydantic import field_serializer, model_serializer
|
|
13
|
+
from typing import Optional
|
|
14
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class GetChartHistoryRequestTypedDict(TypedDict):
|
|
18
|
+
symbol: str
|
|
19
|
+
r"""Symbol to fetch bars for. Use the exact symbol returned by symbol search, such as `AAPL` for equities or the selected chart symbol for futures/options."""
|
|
20
|
+
resolution: ChartResolution
|
|
21
|
+
r"""Candle size. Use minute values such as `1`, `5`, or `60` for intraday charts, `D` or `1D` for daily charts, `W` or `1W` for weekly charts, and `M`, `1M`, `3M`, `6M`, or `12M` for monthly views."""
|
|
22
|
+
from_: int
|
|
23
|
+
r"""Start of the chart window as a Unix timestamp. Send seconds; millisecond timestamps are accepted and converted automatically. Negative timestamps are clamped to the Unix epoch."""
|
|
24
|
+
to: int
|
|
25
|
+
r"""End of the chart window as a Unix timestamp. Must be greater than `from`. Send seconds; millisecond timestamps are accepted and converted automatically. A range entirely before the Unix epoch returns no_data."""
|
|
26
|
+
first_data_request: NotRequired[str]
|
|
27
|
+
r"""TradingView compatibility flag. Omit or send a non-zero value for the first chart request; send `0` for follow-up history requests."""
|
|
28
|
+
include_extended: NotRequired[bool]
|
|
29
|
+
r"""Set to `true` when the chart should include eligible pre-market and after-hours bars. Leave `false` for regular session charts."""
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
class GetChartHistoryRequest(BaseModel):
|
|
33
|
+
symbol: Annotated[
|
|
34
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
35
|
+
]
|
|
36
|
+
r"""Symbol to fetch bars for. Use the exact symbol returned by symbol search, such as `AAPL` for equities or the selected chart symbol for futures/options."""
|
|
37
|
+
|
|
38
|
+
resolution: Annotated[
|
|
39
|
+
ChartResolution,
|
|
40
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
41
|
+
]
|
|
42
|
+
r"""Candle size. Use minute values such as `1`, `5`, or `60` for intraday charts, `D` or `1D` for daily charts, `W` or `1W` for weekly charts, and `M`, `1M`, `3M`, `6M`, or `12M` for monthly views."""
|
|
43
|
+
|
|
44
|
+
from_: Annotated[
|
|
45
|
+
int,
|
|
46
|
+
pydantic.Field(alias="from"),
|
|
47
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
48
|
+
]
|
|
49
|
+
r"""Start of the chart window as a Unix timestamp. Send seconds; millisecond timestamps are accepted and converted automatically. Negative timestamps are clamped to the Unix epoch."""
|
|
50
|
+
|
|
51
|
+
to: Annotated[
|
|
52
|
+
int, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
53
|
+
]
|
|
54
|
+
r"""End of the chart window as a Unix timestamp. Must be greater than `from`. Send seconds; millisecond timestamps are accepted and converted automatically. A range entirely before the Unix epoch returns no_data."""
|
|
55
|
+
|
|
56
|
+
first_data_request: Annotated[
|
|
57
|
+
Optional[str],
|
|
58
|
+
pydantic.Field(alias="firstDataRequest"),
|
|
59
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
60
|
+
] = None
|
|
61
|
+
r"""TradingView compatibility flag. Omit or send a non-zero value for the first chart request; send `0` for follow-up history requests."""
|
|
62
|
+
|
|
63
|
+
include_extended: Annotated[
|
|
64
|
+
Optional[bool],
|
|
65
|
+
pydantic.Field(alias="includeExtended"),
|
|
66
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
67
|
+
] = False
|
|
68
|
+
r"""Set to `true` when the chart should include eligible pre-market and after-hours bars. Leave `false` for regular session charts."""
|
|
69
|
+
|
|
70
|
+
@field_serializer("resolution")
|
|
71
|
+
def serialize_resolution(self, value):
|
|
72
|
+
if isinstance(value, str):
|
|
73
|
+
try:
|
|
74
|
+
return models.ChartResolution(value)
|
|
75
|
+
except ValueError:
|
|
76
|
+
return value
|
|
77
|
+
return value
|
|
78
|
+
|
|
79
|
+
@model_serializer(mode="wrap")
|
|
80
|
+
def serialize_model(self, handler):
|
|
81
|
+
optional_fields = set(["firstDataRequest", "includeExtended"])
|
|
82
|
+
serialized = handler(self)
|
|
83
|
+
m = {}
|
|
84
|
+
|
|
85
|
+
for n, f in type(self).model_fields.items():
|
|
86
|
+
k = f.alias or n
|
|
87
|
+
val = serialized.get(k, serialized.get(n))
|
|
88
|
+
|
|
89
|
+
if val != UNSET_SENTINEL:
|
|
90
|
+
if val is not None or k not in optional_fields:
|
|
91
|
+
m[k] = val
|
|
92
|
+
|
|
93
|
+
return m
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
class GetChartHistoryResponseTypedDict(TypedDict):
|
|
97
|
+
http_meta: HTTPMetadataTypedDict
|
|
98
|
+
chart_bars: NotRequired[ChartBarsTypedDict]
|
|
99
|
+
r"""Historical bars in TradingView UDF format. Check s: ok = data in t, o, h, l, c, v; no_data = no bars; error = provider or processing error. Invalid query parameters or time ranges return HTTP 400."""
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
class GetChartHistoryResponse(BaseModel):
|
|
103
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
104
|
+
|
|
105
|
+
chart_bars: Optional[ChartBars] = None
|
|
106
|
+
r"""Historical bars in TradingView UDF format. Check s: ok = data in t, o, h, l, c, v; no_data = no bars; error = provider or processing error. Invalid query parameters or time ranges return HTTP 400."""
|
|
107
|
+
|
|
108
|
+
@model_serializer(mode="wrap")
|
|
109
|
+
def serialize_model(self, handler):
|
|
110
|
+
optional_fields = set(["ChartBars"])
|
|
111
|
+
serialized = handler(self)
|
|
112
|
+
m = {}
|
|
113
|
+
|
|
114
|
+
for n, f in type(self).model_fields.items():
|
|
115
|
+
k = f.alias or n
|
|
116
|
+
val = serialized.get(k, serialized.get(n))
|
|
117
|
+
|
|
118
|
+
if val != UNSET_SENTINEL:
|
|
119
|
+
if val is not None or k not in optional_fields:
|
|
120
|
+
m[k] = val
|
|
121
|
+
|
|
122
|
+
return m
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 216f394f836f
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
7
|
+
import pydantic
|
|
8
|
+
from pydantic import model_serializer
|
|
9
|
+
from typing import Optional
|
|
10
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class GetChartTimeResponseTypedDict(TypedDict):
|
|
14
|
+
http_meta: HTTPMetadataTypedDict
|
|
15
|
+
res: NotRequired[str]
|
|
16
|
+
r"""Current server time (Unix seconds) as plain text"""
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class GetChartTimeResponse(BaseModel):
|
|
20
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
21
|
+
|
|
22
|
+
res: Optional[str] = None
|
|
23
|
+
r"""Current server time (Unix seconds) as plain text"""
|
|
24
|
+
|
|
25
|
+
@model_serializer(mode="wrap")
|
|
26
|
+
def serialize_model(self, handler):
|
|
27
|
+
optional_fields = set(["res"])
|
|
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,53 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: d470bc877825
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .companyesgresponse import CompanyEsgResponse, CompanyEsgResponseTypedDict
|
|
6
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
7
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
8
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
9
|
+
import pydantic
|
|
10
|
+
from pydantic import model_serializer
|
|
11
|
+
from typing import Optional
|
|
12
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class GetCompanyEsgRequestTypedDict(TypedDict):
|
|
16
|
+
symbol: str
|
|
17
|
+
r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`."""
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetCompanyEsgRequest(BaseModel):
|
|
21
|
+
symbol: Annotated[
|
|
22
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
23
|
+
]
|
|
24
|
+
r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`."""
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class GetCompanyEsgResponseTypedDict(TypedDict):
|
|
28
|
+
http_meta: HTTPMetadataTypedDict
|
|
29
|
+
company_esg_response: NotRequired[CompanyEsgResponseTypedDict]
|
|
30
|
+
r"""Company ESG data."""
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class GetCompanyEsgResponse(BaseModel):
|
|
34
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
35
|
+
|
|
36
|
+
company_esg_response: Optional[CompanyEsgResponse] = None
|
|
37
|
+
r"""Company ESG data."""
|
|
38
|
+
|
|
39
|
+
@model_serializer(mode="wrap")
|
|
40
|
+
def serialize_model(self, handler):
|
|
41
|
+
optional_fields = set(["CompanyEsgResponse"])
|
|
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,56 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: ebf0144b037e
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .companyexecutiveresponse import (
|
|
6
|
+
CompanyExecutiveResponse,
|
|
7
|
+
CompanyExecutiveResponseTypedDict,
|
|
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 GetCompanyExecutivesRequestTypedDict(TypedDict):
|
|
19
|
+
symbol: str
|
|
20
|
+
r"""Stock ticker symbol to research, such as AAPL."""
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class GetCompanyExecutivesRequest(BaseModel):
|
|
24
|
+
symbol: Annotated[
|
|
25
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
26
|
+
]
|
|
27
|
+
r"""Stock ticker symbol to research, such as AAPL."""
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class GetCompanyExecutivesResponseTypedDict(TypedDict):
|
|
31
|
+
http_meta: HTTPMetadataTypedDict
|
|
32
|
+
company_executive_response: NotRequired[CompanyExecutiveResponseTypedDict]
|
|
33
|
+
r"""Successful response"""
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class GetCompanyExecutivesResponse(BaseModel):
|
|
37
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
38
|
+
|
|
39
|
+
company_executive_response: Optional[CompanyExecutiveResponse] = None
|
|
40
|
+
r"""Successful response"""
|
|
41
|
+
|
|
42
|
+
@model_serializer(mode="wrap")
|
|
43
|
+
def serialize_model(self, handler):
|
|
44
|
+
optional_fields = set(["CompanyExecutiveResponse"])
|
|
45
|
+
serialized = handler(self)
|
|
46
|
+
m = {}
|
|
47
|
+
|
|
48
|
+
for n, f in type(self).model_fields.items():
|
|
49
|
+
k = f.alias or n
|
|
50
|
+
val = serialized.get(k, serialized.get(n))
|
|
51
|
+
|
|
52
|
+
if val != UNSET_SENTINEL:
|
|
53
|
+
if val is not None or k not in optional_fields:
|
|
54
|
+
m[k] = val
|
|
55
|
+
|
|
56
|
+
return m
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: c38d9bd1b747
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .basicfinancials import BasicFinancials, BasicFinancialsTypedDict
|
|
6
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
7
|
+
from enum import Enum
|
|
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 GetCompanyMetricsMetric(str, Enum):
|
|
17
|
+
r"""Which metric group to return. Currently only `all` is supported — it returns every available metric for the symbol."""
|
|
18
|
+
|
|
19
|
+
ALL = "all"
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class GetCompanyMetricsRequestTypedDict(TypedDict):
|
|
23
|
+
symbol: str
|
|
24
|
+
r"""Stock ticker symbol to research, such as AAPL."""
|
|
25
|
+
metric: GetCompanyMetricsMetric
|
|
26
|
+
r"""Which metric group to return. Currently only `all` is supported — it returns every available metric for the symbol."""
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class GetCompanyMetricsRequest(BaseModel):
|
|
30
|
+
symbol: Annotated[
|
|
31
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
32
|
+
]
|
|
33
|
+
r"""Stock ticker symbol to research, such as AAPL."""
|
|
34
|
+
|
|
35
|
+
metric: Annotated[
|
|
36
|
+
GetCompanyMetricsMetric,
|
|
37
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
38
|
+
]
|
|
39
|
+
r"""Which metric group to return. Currently only `all` is supported — it returns every available metric for the symbol."""
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
class GetCompanyMetricsResponseTypedDict(TypedDict):
|
|
43
|
+
http_meta: HTTPMetadataTypedDict
|
|
44
|
+
basic_financials: NotRequired[BasicFinancialsTypedDict]
|
|
45
|
+
r"""Successful response"""
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class GetCompanyMetricsResponse(BaseModel):
|
|
49
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
50
|
+
|
|
51
|
+
basic_financials: Optional[BasicFinancials] = None
|
|
52
|
+
r"""Successful response"""
|
|
53
|
+
|
|
54
|
+
@model_serializer(mode="wrap")
|
|
55
|
+
def serialize_model(self, handler):
|
|
56
|
+
optional_fields = set(["BasicFinancials"])
|
|
57
|
+
serialized = handler(self)
|
|
58
|
+
m = {}
|
|
59
|
+
|
|
60
|
+
for n, f in type(self).model_fields.items():
|
|
61
|
+
k = f.alias or n
|
|
62
|
+
val = serialized.get(k, serialized.get(n))
|
|
63
|
+
|
|
64
|
+
if val != UNSET_SENTINEL:
|
|
65
|
+
if val is not None or k not in optional_fields:
|
|
66
|
+
m[k] = val
|
|
67
|
+
|
|
68
|
+
return m
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 9fa0d001998a
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .companypeersresponse import CompanyPeersResponse, CompanyPeersResponseTypedDict
|
|
6
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
7
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
8
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
9
|
+
import pydantic
|
|
10
|
+
from pydantic import model_serializer
|
|
11
|
+
from typing import Optional
|
|
12
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class GetCompanyPeersRequestTypedDict(TypedDict):
|
|
16
|
+
symbol: str
|
|
17
|
+
r"""Stock ticker symbol to research, such as AAPL."""
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetCompanyPeersRequest(BaseModel):
|
|
21
|
+
symbol: Annotated[
|
|
22
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
23
|
+
]
|
|
24
|
+
r"""Stock ticker symbol to research, such as AAPL."""
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class GetCompanyPeersResponseTypedDict(TypedDict):
|
|
28
|
+
http_meta: HTTPMetadataTypedDict
|
|
29
|
+
company_peers_response: NotRequired[CompanyPeersResponseTypedDict]
|
|
30
|
+
r"""Successful response"""
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class GetCompanyPeersResponse(BaseModel):
|
|
34
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
35
|
+
|
|
36
|
+
company_peers_response: Optional[CompanyPeersResponse] = None
|
|
37
|
+
r"""Successful response"""
|
|
38
|
+
|
|
39
|
+
@model_serializer(mode="wrap")
|
|
40
|
+
def serialize_model(self, handler):
|
|
41
|
+
optional_fields = set(["CompanyPeersResponse"])
|
|
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,56 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 538266812579
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .companypresentationresponse import (
|
|
6
|
+
CompanyPresentationResponse,
|
|
7
|
+
CompanyPresentationResponseTypedDict,
|
|
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 GetCompanyPresentationRequestTypedDict(TypedDict):
|
|
19
|
+
symbol: str
|
|
20
|
+
r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`."""
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class GetCompanyPresentationRequest(BaseModel):
|
|
24
|
+
symbol: Annotated[
|
|
25
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
26
|
+
]
|
|
27
|
+
r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`."""
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class GetCompanyPresentationResponseTypedDict(TypedDict):
|
|
31
|
+
http_meta: HTTPMetadataTypedDict
|
|
32
|
+
company_presentation_response: NotRequired[CompanyPresentationResponseTypedDict]
|
|
33
|
+
r"""Company presentation."""
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class GetCompanyPresentationResponse(BaseModel):
|
|
37
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
38
|
+
|
|
39
|
+
company_presentation_response: Optional[CompanyPresentationResponse] = None
|
|
40
|
+
r"""Company presentation."""
|
|
41
|
+
|
|
42
|
+
@model_serializer(mode="wrap")
|
|
43
|
+
def serialize_model(self, handler):
|
|
44
|
+
optional_fields = set(["CompanyPresentationResponse"])
|
|
45
|
+
serialized = handler(self)
|
|
46
|
+
m = {}
|
|
47
|
+
|
|
48
|
+
for n, f in type(self).model_fields.items():
|
|
49
|
+
k = f.alias or n
|
|
50
|
+
val = serialized.get(k, serialized.get(n))
|
|
51
|
+
|
|
52
|
+
if val != UNSET_SENTINEL:
|
|
53
|
+
if val is not None or k not in optional_fields:
|
|
54
|
+
m[k] = val
|
|
55
|
+
|
|
56
|
+
return m
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: fcb4dd634416
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .companyprofile import CompanyProfile, CompanyProfileTypedDict
|
|
6
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
7
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
8
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
9
|
+
import pydantic
|
|
10
|
+
from pydantic import model_serializer
|
|
11
|
+
from typing import Optional
|
|
12
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class GetCompanyProfileRequestTypedDict(TypedDict):
|
|
16
|
+
symbol: NotRequired[str]
|
|
17
|
+
r"""Stock ticker symbol, such as AAPL. Optional if ISIN or CUSIP is provided. If symbol, isin, and cusip are all omitted, the API returns 400 Bad Request."""
|
|
18
|
+
isin: NotRequired[str]
|
|
19
|
+
r"""International Securities Identification Number. Optional if symbol or CUSIP is provided. If symbol, isin, and cusip are all omitted, the API returns 400 Bad Request."""
|
|
20
|
+
cusip: NotRequired[str]
|
|
21
|
+
r"""Committee on Uniform Securities Identification Procedures code. Optional if symbol or ISIN is provided. If symbol, isin, and cusip are all omitted, the API returns 400 Bad Request."""
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class GetCompanyProfileRequest(BaseModel):
|
|
25
|
+
symbol: Annotated[
|
|
26
|
+
Optional[str],
|
|
27
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
28
|
+
] = None
|
|
29
|
+
r"""Stock ticker symbol, such as AAPL. Optional if ISIN or CUSIP is provided. If symbol, isin, and cusip are all omitted, the API returns 400 Bad Request."""
|
|
30
|
+
|
|
31
|
+
isin: Annotated[
|
|
32
|
+
Optional[str],
|
|
33
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
34
|
+
] = None
|
|
35
|
+
r"""International Securities Identification Number. Optional if symbol or CUSIP is provided. If symbol, isin, and cusip are all omitted, the API returns 400 Bad Request."""
|
|
36
|
+
|
|
37
|
+
cusip: Annotated[
|
|
38
|
+
Optional[str],
|
|
39
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
40
|
+
] = None
|
|
41
|
+
r"""Committee on Uniform Securities Identification Procedures code. Optional if symbol or ISIN is provided. If symbol, isin, and cusip are all omitted, the API returns 400 Bad Request."""
|
|
42
|
+
|
|
43
|
+
@model_serializer(mode="wrap")
|
|
44
|
+
def serialize_model(self, handler):
|
|
45
|
+
optional_fields = set(["symbol", "isin", "cusip"])
|
|
46
|
+
serialized = handler(self)
|
|
47
|
+
m = {}
|
|
48
|
+
|
|
49
|
+
for n, f in type(self).model_fields.items():
|
|
50
|
+
k = f.alias or n
|
|
51
|
+
val = serialized.get(k, serialized.get(n))
|
|
52
|
+
|
|
53
|
+
if val != UNSET_SENTINEL:
|
|
54
|
+
if val is not None or k not in optional_fields:
|
|
55
|
+
m[k] = val
|
|
56
|
+
|
|
57
|
+
return m
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
class GetCompanyProfileResponseTypedDict(TypedDict):
|
|
61
|
+
http_meta: HTTPMetadataTypedDict
|
|
62
|
+
company_profile: NotRequired[CompanyProfileTypedDict]
|
|
63
|
+
r"""Company profile retrieved successfully"""
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
class GetCompanyProfileResponse(BaseModel):
|
|
67
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
68
|
+
|
|
69
|
+
company_profile: Optional[CompanyProfile] = None
|
|
70
|
+
r"""Company profile retrieved successfully"""
|
|
71
|
+
|
|
72
|
+
@model_serializer(mode="wrap")
|
|
73
|
+
def serialize_model(self, handler):
|
|
74
|
+
optional_fields = set(["CompanyProfile"])
|
|
75
|
+
serialized = handler(self)
|
|
76
|
+
m = {}
|
|
77
|
+
|
|
78
|
+
for n, f in type(self).model_fields.items():
|
|
79
|
+
k = f.alias or n
|
|
80
|
+
val = serialized.get(k, serialized.get(n))
|
|
81
|
+
|
|
82
|
+
if val != UNSET_SENTINEL:
|
|
83
|
+
if val is not None or k not in optional_fields:
|
|
84
|
+
m[k] = val
|
|
85
|
+
|
|
86
|
+
return m
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: dd16cbffca1d
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .conferencecallsresponse import (
|
|
6
|
+
ConferenceCallsResponse,
|
|
7
|
+
ConferenceCallsResponseTypedDict,
|
|
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 Callable, Optional
|
|
16
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class GetConferenceCallsRequestTypedDict(TypedDict):
|
|
20
|
+
date_from: NotRequired[date]
|
|
21
|
+
r"""Start date in YYYY-MM-DD format. Enter the first date to include in the research window."""
|
|
22
|
+
date_to: NotRequired[date]
|
|
23
|
+
r"""End date in YYYY-MM-DD format. Enter the last date to include in the research window."""
|
|
24
|
+
tickers: NotRequired[str]
|
|
25
|
+
r"""Comma-separated list of ticker symbols (max 50)"""
|
|
26
|
+
page: NotRequired[int]
|
|
27
|
+
r"""Page number for pagination (0-indexed, max 100000)"""
|
|
28
|
+
page_size: NotRequired[int]
|
|
29
|
+
r"""Number of results per page. Use this to control pagination size in list views. Enter a value from 1 to 1000 depending on how much data your UI can display."""
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
class GetConferenceCallsRequest(BaseModel):
|
|
33
|
+
date_from: Annotated[
|
|
34
|
+
Optional[date],
|
|
35
|
+
pydantic.Field(alias="dateFrom"),
|
|
36
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
37
|
+
] = None
|
|
38
|
+
r"""Start date in YYYY-MM-DD format. Enter the first date to include in the research window."""
|
|
39
|
+
|
|
40
|
+
date_to: Annotated[
|
|
41
|
+
Optional[date],
|
|
42
|
+
pydantic.Field(alias="dateTo"),
|
|
43
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
44
|
+
] = None
|
|
45
|
+
r"""End date in YYYY-MM-DD format. Enter the last date to include in the research window."""
|
|
46
|
+
|
|
47
|
+
tickers: Annotated[
|
|
48
|
+
Optional[str],
|
|
49
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
50
|
+
] = None
|
|
51
|
+
r"""Comma-separated list of ticker symbols (max 50)"""
|
|
52
|
+
|
|
53
|
+
page: Annotated[
|
|
54
|
+
Optional[int],
|
|
55
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
56
|
+
] = None
|
|
57
|
+
r"""Page number for pagination (0-indexed, max 100000)"""
|
|
58
|
+
|
|
59
|
+
page_size: Annotated[
|
|
60
|
+
Optional[int],
|
|
61
|
+
pydantic.Field(alias="pageSize"),
|
|
62
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
63
|
+
] = None
|
|
64
|
+
r"""Number of results per page. Use this to control pagination size in list views. Enter a value from 1 to 1000 depending on how much data your UI can display."""
|
|
65
|
+
|
|
66
|
+
@model_serializer(mode="wrap")
|
|
67
|
+
def serialize_model(self, handler):
|
|
68
|
+
optional_fields = set(["dateFrom", "dateTo", "tickers", "page", "pageSize"])
|
|
69
|
+
serialized = handler(self)
|
|
70
|
+
m = {}
|
|
71
|
+
|
|
72
|
+
for n, f in type(self).model_fields.items():
|
|
73
|
+
k = f.alias or n
|
|
74
|
+
val = serialized.get(k, serialized.get(n))
|
|
75
|
+
|
|
76
|
+
if val != UNSET_SENTINEL:
|
|
77
|
+
if val is not None or k not in optional_fields:
|
|
78
|
+
m[k] = val
|
|
79
|
+
|
|
80
|
+
return m
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
class GetConferenceCallsResponseTypedDict(TypedDict):
|
|
84
|
+
http_meta: HTTPMetadataTypedDict
|
|
85
|
+
conference_calls_response: NotRequired[ConferenceCallsResponseTypedDict]
|
|
86
|
+
r"""Successful response"""
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
class GetConferenceCallsResponse(BaseModel):
|
|
90
|
+
next: Callable[[], Optional[GetConferenceCallsResponse]]
|
|
91
|
+
|
|
92
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
93
|
+
|
|
94
|
+
conference_calls_response: Optional[ConferenceCallsResponse] = None
|
|
95
|
+
r"""Successful response"""
|
|
96
|
+
|
|
97
|
+
@model_serializer(mode="wrap")
|
|
98
|
+
def serialize_model(self, handler):
|
|
99
|
+
optional_fields = set(["ConferenceCallsResponse"])
|
|
100
|
+
serialized = handler(self)
|
|
101
|
+
m = {}
|
|
102
|
+
|
|
103
|
+
for n, f in type(self).model_fields.items():
|
|
104
|
+
k = f.alias or n
|
|
105
|
+
val = serialized.get(k, serialized.get(n))
|
|
106
|
+
|
|
107
|
+
if val != UNSET_SENTINEL:
|
|
108
|
+
if val is not None or k not in optional_fields:
|
|
109
|
+
m[k] = val
|
|
110
|
+
|
|
111
|
+
return m
|