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
finance_dev/company.py
ADDED
|
@@ -0,0 +1,1105 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 7b42032436a0
|
|
3
|
+
|
|
4
|
+
from .basesdk import BaseSDK
|
|
5
|
+
from finance_dev import errors, models, utils
|
|
6
|
+
from finance_dev._hooks import HookContext
|
|
7
|
+
from finance_dev.types import OptionalNullable, UNSET
|
|
8
|
+
from finance_dev.utils.unmarshal_json_response import unmarshal_json_response
|
|
9
|
+
from typing import Any, Mapping, Optional
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class Company(BaseSDK):
|
|
13
|
+
def get_company_executives(
|
|
14
|
+
self,
|
|
15
|
+
*,
|
|
16
|
+
symbol: str,
|
|
17
|
+
retries: OptionalNullable[utils.RetryConfig] = UNSET,
|
|
18
|
+
server_url: Optional[str] = None,
|
|
19
|
+
timeout_ms: Optional[int] = None,
|
|
20
|
+
http_headers: Optional[Mapping[str, str]] = None,
|
|
21
|
+
) -> models.GetCompanyExecutivesResponse:
|
|
22
|
+
r"""Get Company Executives
|
|
23
|
+
|
|
24
|
+
Retrieve information about company executives and key management personnel including names, titles, compensation, and tenure.
|
|
25
|
+
|
|
26
|
+
Returns 404 Not Found with error code `NOT_FOUND` when no executive data is available for the specified symbol.
|
|
27
|
+
|
|
28
|
+
If set, this operation will use `client_id` from the global security.
|
|
29
|
+
|
|
30
|
+
:param symbol: Stock ticker symbol to research, such as AAPL.
|
|
31
|
+
:param retries: Override the default retry configuration for this method
|
|
32
|
+
:param server_url: Override the default server URL for this method
|
|
33
|
+
:param timeout_ms: Override the default request timeout configuration for this method in milliseconds
|
|
34
|
+
:param http_headers: Additional headers to set or replace on requests.
|
|
35
|
+
"""
|
|
36
|
+
base_url = None
|
|
37
|
+
url_variables = None
|
|
38
|
+
if timeout_ms is None:
|
|
39
|
+
timeout_ms = self.sdk_configuration.timeout_ms
|
|
40
|
+
|
|
41
|
+
if timeout_ms is None:
|
|
42
|
+
timeout_ms = 30000
|
|
43
|
+
|
|
44
|
+
if server_url is not None:
|
|
45
|
+
base_url = server_url
|
|
46
|
+
else:
|
|
47
|
+
base_url = self._get_url(base_url, url_variables)
|
|
48
|
+
|
|
49
|
+
request = models.GetCompanyExecutivesRequest(
|
|
50
|
+
symbol=symbol,
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
req = self._build_request(
|
|
54
|
+
method="GET",
|
|
55
|
+
path="/v1/company/executive",
|
|
56
|
+
base_url=base_url,
|
|
57
|
+
url_variables=url_variables,
|
|
58
|
+
request=request,
|
|
59
|
+
request_body_required=False,
|
|
60
|
+
request_has_path_params=False,
|
|
61
|
+
request_has_query_params=True,
|
|
62
|
+
user_agent_header="user-agent",
|
|
63
|
+
accept_header_value="application/json",
|
|
64
|
+
http_headers=http_headers,
|
|
65
|
+
security=self.sdk_configuration.security,
|
|
66
|
+
allow_empty_value=None,
|
|
67
|
+
allowed_fields=["client_id"],
|
|
68
|
+
timeout_ms=timeout_ms,
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
if retries == UNSET:
|
|
72
|
+
if self.sdk_configuration.retry_config is not UNSET:
|
|
73
|
+
retries = self.sdk_configuration.retry_config
|
|
74
|
+
else:
|
|
75
|
+
retries = utils.RetryConfig(
|
|
76
|
+
"backoff", utils.BackoffStrategy(500, 8000, 1.5, 60000), True
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
retry_config = None
|
|
80
|
+
if isinstance(retries, utils.RetryConfig):
|
|
81
|
+
retry_config = (retries, ["429", "500", "502", "503", "504"])
|
|
82
|
+
|
|
83
|
+
http_res = self.do_request(
|
|
84
|
+
hook_ctx=HookContext(
|
|
85
|
+
config=self.sdk_configuration,
|
|
86
|
+
base_url=base_url or "",
|
|
87
|
+
operation_id="getCompanyExecutives",
|
|
88
|
+
oauth2_scopes=["market:supplemental"],
|
|
89
|
+
security_source=self.sdk_configuration.security,
|
|
90
|
+
tags=["Company"],
|
|
91
|
+
extensions=None,
|
|
92
|
+
),
|
|
93
|
+
request=req,
|
|
94
|
+
is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c),
|
|
95
|
+
retry_config=retry_config,
|
|
96
|
+
)
|
|
97
|
+
|
|
98
|
+
response_data: Any = None
|
|
99
|
+
if utils.match_response(http_res, "200", "application/json"):
|
|
100
|
+
return models.GetCompanyExecutivesResponse(
|
|
101
|
+
company_executive_response=unmarshal_json_response(
|
|
102
|
+
Optional[models.CompanyExecutiveResponse], http_res
|
|
103
|
+
),
|
|
104
|
+
http_meta=models.HTTPMetadata(request=req, response=http_res),
|
|
105
|
+
)
|
|
106
|
+
if utils.match_response(http_res, "400", "application/json"):
|
|
107
|
+
response_data = unmarshal_json_response(errors.BadRequestUnion, http_res)
|
|
108
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
109
|
+
request=req, response=http_res
|
|
110
|
+
)
|
|
111
|
+
raise errors.BadRequest(response_data, http_res)
|
|
112
|
+
if utils.match_response(http_res, "401", "application/json"):
|
|
113
|
+
response_data = unmarshal_json_response(errors.UnauthorizedUnion, http_res)
|
|
114
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
115
|
+
request=req, response=http_res
|
|
116
|
+
)
|
|
117
|
+
raise errors.Unauthorized(response_data, http_res)
|
|
118
|
+
if utils.match_response(http_res, "403", "application/json"):
|
|
119
|
+
response_data = unmarshal_json_response(errors.ForbiddenUnion, http_res)
|
|
120
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
121
|
+
request=req, response=http_res
|
|
122
|
+
)
|
|
123
|
+
raise errors.Forbidden(response_data, http_res)
|
|
124
|
+
if utils.match_response(http_res, "404", "application/json"):
|
|
125
|
+
response_data = unmarshal_json_response(errors.NotFoundUnion, http_res)
|
|
126
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
127
|
+
request=req, response=http_res
|
|
128
|
+
)
|
|
129
|
+
raise errors.NotFound(response_data, http_res)
|
|
130
|
+
if utils.match_response(http_res, "500", "application/json"):
|
|
131
|
+
response_data = unmarshal_json_response(
|
|
132
|
+
errors.InternalServerErrorUnion, http_res
|
|
133
|
+
)
|
|
134
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
135
|
+
request=req, response=http_res
|
|
136
|
+
)
|
|
137
|
+
raise errors.InternalServerError(response_data, http_res)
|
|
138
|
+
if utils.match_response(http_res, "4XX", "*"):
|
|
139
|
+
http_res_text = utils.stream_to_text(http_res)
|
|
140
|
+
raise errors.APIError("API error occurred", http_res, http_res_text)
|
|
141
|
+
if utils.match_response(http_res, "5XX", "*"):
|
|
142
|
+
http_res_text = utils.stream_to_text(http_res)
|
|
143
|
+
raise errors.APIError("API error occurred", http_res, http_res_text)
|
|
144
|
+
|
|
145
|
+
raise errors.APIError("Unexpected response received", http_res)
|
|
146
|
+
|
|
147
|
+
async def get_company_executives_async(
|
|
148
|
+
self,
|
|
149
|
+
*,
|
|
150
|
+
symbol: str,
|
|
151
|
+
retries: OptionalNullable[utils.RetryConfig] = UNSET,
|
|
152
|
+
server_url: Optional[str] = None,
|
|
153
|
+
timeout_ms: Optional[int] = None,
|
|
154
|
+
http_headers: Optional[Mapping[str, str]] = None,
|
|
155
|
+
) -> models.GetCompanyExecutivesResponse:
|
|
156
|
+
r"""Get Company Executives
|
|
157
|
+
|
|
158
|
+
Retrieve information about company executives and key management personnel including names, titles, compensation, and tenure.
|
|
159
|
+
|
|
160
|
+
Returns 404 Not Found with error code `NOT_FOUND` when no executive data is available for the specified symbol.
|
|
161
|
+
|
|
162
|
+
If set, this operation will use `client_id` from the global security.
|
|
163
|
+
|
|
164
|
+
:param symbol: Stock ticker symbol to research, such as AAPL.
|
|
165
|
+
:param retries: Override the default retry configuration for this method
|
|
166
|
+
:param server_url: Override the default server URL for this method
|
|
167
|
+
:param timeout_ms: Override the default request timeout configuration for this method in milliseconds
|
|
168
|
+
:param http_headers: Additional headers to set or replace on requests.
|
|
169
|
+
"""
|
|
170
|
+
base_url = None
|
|
171
|
+
url_variables = None
|
|
172
|
+
if timeout_ms is None:
|
|
173
|
+
timeout_ms = self.sdk_configuration.timeout_ms
|
|
174
|
+
|
|
175
|
+
if timeout_ms is None:
|
|
176
|
+
timeout_ms = 30000
|
|
177
|
+
|
|
178
|
+
if server_url is not None:
|
|
179
|
+
base_url = server_url
|
|
180
|
+
else:
|
|
181
|
+
base_url = self._get_url(base_url, url_variables)
|
|
182
|
+
|
|
183
|
+
request = models.GetCompanyExecutivesRequest(
|
|
184
|
+
symbol=symbol,
|
|
185
|
+
)
|
|
186
|
+
|
|
187
|
+
req = self._build_request_async(
|
|
188
|
+
method="GET",
|
|
189
|
+
path="/v1/company/executive",
|
|
190
|
+
base_url=base_url,
|
|
191
|
+
url_variables=url_variables,
|
|
192
|
+
request=request,
|
|
193
|
+
request_body_required=False,
|
|
194
|
+
request_has_path_params=False,
|
|
195
|
+
request_has_query_params=True,
|
|
196
|
+
user_agent_header="user-agent",
|
|
197
|
+
accept_header_value="application/json",
|
|
198
|
+
http_headers=http_headers,
|
|
199
|
+
security=self.sdk_configuration.security,
|
|
200
|
+
allow_empty_value=None,
|
|
201
|
+
allowed_fields=["client_id"],
|
|
202
|
+
timeout_ms=timeout_ms,
|
|
203
|
+
)
|
|
204
|
+
|
|
205
|
+
if retries == UNSET:
|
|
206
|
+
if self.sdk_configuration.retry_config is not UNSET:
|
|
207
|
+
retries = self.sdk_configuration.retry_config
|
|
208
|
+
else:
|
|
209
|
+
retries = utils.RetryConfig(
|
|
210
|
+
"backoff", utils.BackoffStrategy(500, 8000, 1.5, 60000), True
|
|
211
|
+
)
|
|
212
|
+
|
|
213
|
+
retry_config = None
|
|
214
|
+
if isinstance(retries, utils.RetryConfig):
|
|
215
|
+
retry_config = (retries, ["429", "500", "502", "503", "504"])
|
|
216
|
+
|
|
217
|
+
http_res = await self.do_request_async(
|
|
218
|
+
hook_ctx=HookContext(
|
|
219
|
+
config=self.sdk_configuration,
|
|
220
|
+
base_url=base_url or "",
|
|
221
|
+
operation_id="getCompanyExecutives",
|
|
222
|
+
oauth2_scopes=["market:supplemental"],
|
|
223
|
+
security_source=self.sdk_configuration.security,
|
|
224
|
+
tags=["Company"],
|
|
225
|
+
extensions=None,
|
|
226
|
+
),
|
|
227
|
+
request=req,
|
|
228
|
+
is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c),
|
|
229
|
+
retry_config=retry_config,
|
|
230
|
+
)
|
|
231
|
+
|
|
232
|
+
response_data: Any = None
|
|
233
|
+
if utils.match_response(http_res, "200", "application/json"):
|
|
234
|
+
return models.GetCompanyExecutivesResponse(
|
|
235
|
+
company_executive_response=unmarshal_json_response(
|
|
236
|
+
Optional[models.CompanyExecutiveResponse], http_res
|
|
237
|
+
),
|
|
238
|
+
http_meta=models.HTTPMetadata(request=req, response=http_res),
|
|
239
|
+
)
|
|
240
|
+
if utils.match_response(http_res, "400", "application/json"):
|
|
241
|
+
response_data = unmarshal_json_response(errors.BadRequestUnion, http_res)
|
|
242
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
243
|
+
request=req, response=http_res
|
|
244
|
+
)
|
|
245
|
+
raise errors.BadRequest(response_data, http_res)
|
|
246
|
+
if utils.match_response(http_res, "401", "application/json"):
|
|
247
|
+
response_data = unmarshal_json_response(errors.UnauthorizedUnion, http_res)
|
|
248
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
249
|
+
request=req, response=http_res
|
|
250
|
+
)
|
|
251
|
+
raise errors.Unauthorized(response_data, http_res)
|
|
252
|
+
if utils.match_response(http_res, "403", "application/json"):
|
|
253
|
+
response_data = unmarshal_json_response(errors.ForbiddenUnion, http_res)
|
|
254
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
255
|
+
request=req, response=http_res
|
|
256
|
+
)
|
|
257
|
+
raise errors.Forbidden(response_data, http_res)
|
|
258
|
+
if utils.match_response(http_res, "404", "application/json"):
|
|
259
|
+
response_data = unmarshal_json_response(errors.NotFoundUnion, http_res)
|
|
260
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
261
|
+
request=req, response=http_res
|
|
262
|
+
)
|
|
263
|
+
raise errors.NotFound(response_data, http_res)
|
|
264
|
+
if utils.match_response(http_res, "500", "application/json"):
|
|
265
|
+
response_data = unmarshal_json_response(
|
|
266
|
+
errors.InternalServerErrorUnion, http_res
|
|
267
|
+
)
|
|
268
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
269
|
+
request=req, response=http_res
|
|
270
|
+
)
|
|
271
|
+
raise errors.InternalServerError(response_data, http_res)
|
|
272
|
+
if utils.match_response(http_res, "4XX", "*"):
|
|
273
|
+
http_res_text = await utils.stream_to_text_async(http_res)
|
|
274
|
+
raise errors.APIError("API error occurred", http_res, http_res_text)
|
|
275
|
+
if utils.match_response(http_res, "5XX", "*"):
|
|
276
|
+
http_res_text = await utils.stream_to_text_async(http_res)
|
|
277
|
+
raise errors.APIError("API error occurred", http_res, http_res_text)
|
|
278
|
+
|
|
279
|
+
raise errors.APIError("Unexpected response received", http_res)
|
|
280
|
+
|
|
281
|
+
def get_company_metrics(
|
|
282
|
+
self,
|
|
283
|
+
*,
|
|
284
|
+
symbol: str,
|
|
285
|
+
metric: models.GetCompanyMetricsMetric,
|
|
286
|
+
retries: OptionalNullable[utils.RetryConfig] = UNSET,
|
|
287
|
+
server_url: Optional[str] = None,
|
|
288
|
+
timeout_ms: Optional[int] = None,
|
|
289
|
+
http_headers: Optional[Mapping[str, str]] = None,
|
|
290
|
+
) -> models.GetCompanyMetricsResponse:
|
|
291
|
+
r"""Get Company Financial Metrics
|
|
292
|
+
|
|
293
|
+
Retrieve key financial metrics and ratios including market capitalization, P/E ratio, dividend yield, profit margins, and return on equity.
|
|
294
|
+
|
|
295
|
+
Returns 404 Not Found with error code `NOT_FOUND` when no metrics are available for the specified criteria.
|
|
296
|
+
|
|
297
|
+
If set, this operation will use `client_id` from the global security.
|
|
298
|
+
|
|
299
|
+
:param symbol: Stock ticker symbol to research, such as AAPL.
|
|
300
|
+
:param metric: Which metric group to return. Currently only `all` is supported — it returns every available metric for the symbol.
|
|
301
|
+
:param retries: Override the default retry configuration for this method
|
|
302
|
+
:param server_url: Override the default server URL for this method
|
|
303
|
+
:param timeout_ms: Override the default request timeout configuration for this method in milliseconds
|
|
304
|
+
:param http_headers: Additional headers to set or replace on requests.
|
|
305
|
+
"""
|
|
306
|
+
base_url = None
|
|
307
|
+
url_variables = None
|
|
308
|
+
if timeout_ms is None:
|
|
309
|
+
timeout_ms = self.sdk_configuration.timeout_ms
|
|
310
|
+
|
|
311
|
+
if timeout_ms is None:
|
|
312
|
+
timeout_ms = 30000
|
|
313
|
+
|
|
314
|
+
if server_url is not None:
|
|
315
|
+
base_url = server_url
|
|
316
|
+
else:
|
|
317
|
+
base_url = self._get_url(base_url, url_variables)
|
|
318
|
+
|
|
319
|
+
request = models.GetCompanyMetricsRequest(
|
|
320
|
+
symbol=symbol,
|
|
321
|
+
metric=metric,
|
|
322
|
+
)
|
|
323
|
+
|
|
324
|
+
req = self._build_request(
|
|
325
|
+
method="GET",
|
|
326
|
+
path="/v1/company/metrics",
|
|
327
|
+
base_url=base_url,
|
|
328
|
+
url_variables=url_variables,
|
|
329
|
+
request=request,
|
|
330
|
+
request_body_required=False,
|
|
331
|
+
request_has_path_params=False,
|
|
332
|
+
request_has_query_params=True,
|
|
333
|
+
user_agent_header="user-agent",
|
|
334
|
+
accept_header_value="application/json",
|
|
335
|
+
http_headers=http_headers,
|
|
336
|
+
security=self.sdk_configuration.security,
|
|
337
|
+
allow_empty_value=None,
|
|
338
|
+
allowed_fields=["client_id"],
|
|
339
|
+
timeout_ms=timeout_ms,
|
|
340
|
+
)
|
|
341
|
+
|
|
342
|
+
if retries == UNSET:
|
|
343
|
+
if self.sdk_configuration.retry_config is not UNSET:
|
|
344
|
+
retries = self.sdk_configuration.retry_config
|
|
345
|
+
else:
|
|
346
|
+
retries = utils.RetryConfig(
|
|
347
|
+
"backoff", utils.BackoffStrategy(500, 8000, 1.5, 60000), True
|
|
348
|
+
)
|
|
349
|
+
|
|
350
|
+
retry_config = None
|
|
351
|
+
if isinstance(retries, utils.RetryConfig):
|
|
352
|
+
retry_config = (retries, ["429", "500", "502", "503", "504"])
|
|
353
|
+
|
|
354
|
+
http_res = self.do_request(
|
|
355
|
+
hook_ctx=HookContext(
|
|
356
|
+
config=self.sdk_configuration,
|
|
357
|
+
base_url=base_url or "",
|
|
358
|
+
operation_id="getCompanyMetrics",
|
|
359
|
+
oauth2_scopes=["market:supplemental"],
|
|
360
|
+
security_source=self.sdk_configuration.security,
|
|
361
|
+
tags=["Company"],
|
|
362
|
+
extensions=None,
|
|
363
|
+
),
|
|
364
|
+
request=req,
|
|
365
|
+
is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c),
|
|
366
|
+
retry_config=retry_config,
|
|
367
|
+
)
|
|
368
|
+
|
|
369
|
+
response_data: Any = None
|
|
370
|
+
if utils.match_response(http_res, "200", "application/json"):
|
|
371
|
+
return models.GetCompanyMetricsResponse(
|
|
372
|
+
basic_financials=unmarshal_json_response(
|
|
373
|
+
Optional[models.BasicFinancials], http_res
|
|
374
|
+
),
|
|
375
|
+
http_meta=models.HTTPMetadata(request=req, response=http_res),
|
|
376
|
+
)
|
|
377
|
+
if utils.match_response(http_res, "400", "application/json"):
|
|
378
|
+
response_data = unmarshal_json_response(errors.BadRequestUnion, http_res)
|
|
379
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
380
|
+
request=req, response=http_res
|
|
381
|
+
)
|
|
382
|
+
raise errors.BadRequest(response_data, http_res)
|
|
383
|
+
if utils.match_response(http_res, "401", "application/json"):
|
|
384
|
+
response_data = unmarshal_json_response(errors.UnauthorizedUnion, http_res)
|
|
385
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
386
|
+
request=req, response=http_res
|
|
387
|
+
)
|
|
388
|
+
raise errors.Unauthorized(response_data, http_res)
|
|
389
|
+
if utils.match_response(http_res, "403", "application/json"):
|
|
390
|
+
response_data = unmarshal_json_response(errors.ForbiddenUnion, http_res)
|
|
391
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
392
|
+
request=req, response=http_res
|
|
393
|
+
)
|
|
394
|
+
raise errors.Forbidden(response_data, http_res)
|
|
395
|
+
if utils.match_response(http_res, "404", "application/json"):
|
|
396
|
+
response_data = unmarshal_json_response(errors.NotFoundUnion, http_res)
|
|
397
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
398
|
+
request=req, response=http_res
|
|
399
|
+
)
|
|
400
|
+
raise errors.NotFound(response_data, http_res)
|
|
401
|
+
if utils.match_response(http_res, "500", "application/json"):
|
|
402
|
+
response_data = unmarshal_json_response(
|
|
403
|
+
errors.InternalServerErrorUnion, http_res
|
|
404
|
+
)
|
|
405
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
406
|
+
request=req, response=http_res
|
|
407
|
+
)
|
|
408
|
+
raise errors.InternalServerError(response_data, http_res)
|
|
409
|
+
if utils.match_response(http_res, "4XX", "*"):
|
|
410
|
+
http_res_text = utils.stream_to_text(http_res)
|
|
411
|
+
raise errors.APIError("API error occurred", http_res, http_res_text)
|
|
412
|
+
if utils.match_response(http_res, "5XX", "*"):
|
|
413
|
+
http_res_text = utils.stream_to_text(http_res)
|
|
414
|
+
raise errors.APIError("API error occurred", http_res, http_res_text)
|
|
415
|
+
|
|
416
|
+
raise errors.APIError("Unexpected response received", http_res)
|
|
417
|
+
|
|
418
|
+
async def get_company_metrics_async(
|
|
419
|
+
self,
|
|
420
|
+
*,
|
|
421
|
+
symbol: str,
|
|
422
|
+
metric: models.GetCompanyMetricsMetric,
|
|
423
|
+
retries: OptionalNullable[utils.RetryConfig] = UNSET,
|
|
424
|
+
server_url: Optional[str] = None,
|
|
425
|
+
timeout_ms: Optional[int] = None,
|
|
426
|
+
http_headers: Optional[Mapping[str, str]] = None,
|
|
427
|
+
) -> models.GetCompanyMetricsResponse:
|
|
428
|
+
r"""Get Company Financial Metrics
|
|
429
|
+
|
|
430
|
+
Retrieve key financial metrics and ratios including market capitalization, P/E ratio, dividend yield, profit margins, and return on equity.
|
|
431
|
+
|
|
432
|
+
Returns 404 Not Found with error code `NOT_FOUND` when no metrics are available for the specified criteria.
|
|
433
|
+
|
|
434
|
+
If set, this operation will use `client_id` from the global security.
|
|
435
|
+
|
|
436
|
+
:param symbol: Stock ticker symbol to research, such as AAPL.
|
|
437
|
+
:param metric: Which metric group to return. Currently only `all` is supported — it returns every available metric for the symbol.
|
|
438
|
+
:param retries: Override the default retry configuration for this method
|
|
439
|
+
:param server_url: Override the default server URL for this method
|
|
440
|
+
:param timeout_ms: Override the default request timeout configuration for this method in milliseconds
|
|
441
|
+
:param http_headers: Additional headers to set or replace on requests.
|
|
442
|
+
"""
|
|
443
|
+
base_url = None
|
|
444
|
+
url_variables = None
|
|
445
|
+
if timeout_ms is None:
|
|
446
|
+
timeout_ms = self.sdk_configuration.timeout_ms
|
|
447
|
+
|
|
448
|
+
if timeout_ms is None:
|
|
449
|
+
timeout_ms = 30000
|
|
450
|
+
|
|
451
|
+
if server_url is not None:
|
|
452
|
+
base_url = server_url
|
|
453
|
+
else:
|
|
454
|
+
base_url = self._get_url(base_url, url_variables)
|
|
455
|
+
|
|
456
|
+
request = models.GetCompanyMetricsRequest(
|
|
457
|
+
symbol=symbol,
|
|
458
|
+
metric=metric,
|
|
459
|
+
)
|
|
460
|
+
|
|
461
|
+
req = self._build_request_async(
|
|
462
|
+
method="GET",
|
|
463
|
+
path="/v1/company/metrics",
|
|
464
|
+
base_url=base_url,
|
|
465
|
+
url_variables=url_variables,
|
|
466
|
+
request=request,
|
|
467
|
+
request_body_required=False,
|
|
468
|
+
request_has_path_params=False,
|
|
469
|
+
request_has_query_params=True,
|
|
470
|
+
user_agent_header="user-agent",
|
|
471
|
+
accept_header_value="application/json",
|
|
472
|
+
http_headers=http_headers,
|
|
473
|
+
security=self.sdk_configuration.security,
|
|
474
|
+
allow_empty_value=None,
|
|
475
|
+
allowed_fields=["client_id"],
|
|
476
|
+
timeout_ms=timeout_ms,
|
|
477
|
+
)
|
|
478
|
+
|
|
479
|
+
if retries == UNSET:
|
|
480
|
+
if self.sdk_configuration.retry_config is not UNSET:
|
|
481
|
+
retries = self.sdk_configuration.retry_config
|
|
482
|
+
else:
|
|
483
|
+
retries = utils.RetryConfig(
|
|
484
|
+
"backoff", utils.BackoffStrategy(500, 8000, 1.5, 60000), True
|
|
485
|
+
)
|
|
486
|
+
|
|
487
|
+
retry_config = None
|
|
488
|
+
if isinstance(retries, utils.RetryConfig):
|
|
489
|
+
retry_config = (retries, ["429", "500", "502", "503", "504"])
|
|
490
|
+
|
|
491
|
+
http_res = await self.do_request_async(
|
|
492
|
+
hook_ctx=HookContext(
|
|
493
|
+
config=self.sdk_configuration,
|
|
494
|
+
base_url=base_url or "",
|
|
495
|
+
operation_id="getCompanyMetrics",
|
|
496
|
+
oauth2_scopes=["market:supplemental"],
|
|
497
|
+
security_source=self.sdk_configuration.security,
|
|
498
|
+
tags=["Company"],
|
|
499
|
+
extensions=None,
|
|
500
|
+
),
|
|
501
|
+
request=req,
|
|
502
|
+
is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c),
|
|
503
|
+
retry_config=retry_config,
|
|
504
|
+
)
|
|
505
|
+
|
|
506
|
+
response_data: Any = None
|
|
507
|
+
if utils.match_response(http_res, "200", "application/json"):
|
|
508
|
+
return models.GetCompanyMetricsResponse(
|
|
509
|
+
basic_financials=unmarshal_json_response(
|
|
510
|
+
Optional[models.BasicFinancials], http_res
|
|
511
|
+
),
|
|
512
|
+
http_meta=models.HTTPMetadata(request=req, response=http_res),
|
|
513
|
+
)
|
|
514
|
+
if utils.match_response(http_res, "400", "application/json"):
|
|
515
|
+
response_data = unmarshal_json_response(errors.BadRequestUnion, http_res)
|
|
516
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
517
|
+
request=req, response=http_res
|
|
518
|
+
)
|
|
519
|
+
raise errors.BadRequest(response_data, http_res)
|
|
520
|
+
if utils.match_response(http_res, "401", "application/json"):
|
|
521
|
+
response_data = unmarshal_json_response(errors.UnauthorizedUnion, http_res)
|
|
522
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
523
|
+
request=req, response=http_res
|
|
524
|
+
)
|
|
525
|
+
raise errors.Unauthorized(response_data, http_res)
|
|
526
|
+
if utils.match_response(http_res, "403", "application/json"):
|
|
527
|
+
response_data = unmarshal_json_response(errors.ForbiddenUnion, http_res)
|
|
528
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
529
|
+
request=req, response=http_res
|
|
530
|
+
)
|
|
531
|
+
raise errors.Forbidden(response_data, http_res)
|
|
532
|
+
if utils.match_response(http_res, "404", "application/json"):
|
|
533
|
+
response_data = unmarshal_json_response(errors.NotFoundUnion, http_res)
|
|
534
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
535
|
+
request=req, response=http_res
|
|
536
|
+
)
|
|
537
|
+
raise errors.NotFound(response_data, http_res)
|
|
538
|
+
if utils.match_response(http_res, "500", "application/json"):
|
|
539
|
+
response_data = unmarshal_json_response(
|
|
540
|
+
errors.InternalServerErrorUnion, http_res
|
|
541
|
+
)
|
|
542
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
543
|
+
request=req, response=http_res
|
|
544
|
+
)
|
|
545
|
+
raise errors.InternalServerError(response_data, http_res)
|
|
546
|
+
if utils.match_response(http_res, "4XX", "*"):
|
|
547
|
+
http_res_text = await utils.stream_to_text_async(http_res)
|
|
548
|
+
raise errors.APIError("API error occurred", http_res, http_res_text)
|
|
549
|
+
if utils.match_response(http_res, "5XX", "*"):
|
|
550
|
+
http_res_text = await utils.stream_to_text_async(http_res)
|
|
551
|
+
raise errors.APIError("API error occurred", http_res, http_res_text)
|
|
552
|
+
|
|
553
|
+
raise errors.APIError("Unexpected response received", http_res)
|
|
554
|
+
|
|
555
|
+
def get_company_peers(
|
|
556
|
+
self,
|
|
557
|
+
*,
|
|
558
|
+
symbol: str,
|
|
559
|
+
retries: OptionalNullable[utils.RetryConfig] = UNSET,
|
|
560
|
+
server_url: Optional[str] = None,
|
|
561
|
+
timeout_ms: Optional[int] = None,
|
|
562
|
+
http_headers: Optional[Mapping[str, str]] = None,
|
|
563
|
+
) -> models.GetCompanyPeersResponse:
|
|
564
|
+
r"""Get Company Peers
|
|
565
|
+
|
|
566
|
+
Retrieve a list of peer companies within the same industry or sector that are comparable in size and business model.
|
|
567
|
+
|
|
568
|
+
Returns 404 Not Found with error code `NOT_FOUND` when no peers are available for the specified symbol.
|
|
569
|
+
|
|
570
|
+
If set, this operation will use `client_id` from the global security.
|
|
571
|
+
|
|
572
|
+
:param symbol: Stock ticker symbol to research, such as AAPL.
|
|
573
|
+
:param retries: Override the default retry configuration for this method
|
|
574
|
+
:param server_url: Override the default server URL for this method
|
|
575
|
+
:param timeout_ms: Override the default request timeout configuration for this method in milliseconds
|
|
576
|
+
:param http_headers: Additional headers to set or replace on requests.
|
|
577
|
+
"""
|
|
578
|
+
base_url = None
|
|
579
|
+
url_variables = None
|
|
580
|
+
if timeout_ms is None:
|
|
581
|
+
timeout_ms = self.sdk_configuration.timeout_ms
|
|
582
|
+
|
|
583
|
+
if timeout_ms is None:
|
|
584
|
+
timeout_ms = 30000
|
|
585
|
+
|
|
586
|
+
if server_url is not None:
|
|
587
|
+
base_url = server_url
|
|
588
|
+
else:
|
|
589
|
+
base_url = self._get_url(base_url, url_variables)
|
|
590
|
+
|
|
591
|
+
request = models.GetCompanyPeersRequest(
|
|
592
|
+
symbol=symbol,
|
|
593
|
+
)
|
|
594
|
+
|
|
595
|
+
req = self._build_request(
|
|
596
|
+
method="GET",
|
|
597
|
+
path="/v1/company/peers",
|
|
598
|
+
base_url=base_url,
|
|
599
|
+
url_variables=url_variables,
|
|
600
|
+
request=request,
|
|
601
|
+
request_body_required=False,
|
|
602
|
+
request_has_path_params=False,
|
|
603
|
+
request_has_query_params=True,
|
|
604
|
+
user_agent_header="user-agent",
|
|
605
|
+
accept_header_value="application/json",
|
|
606
|
+
http_headers=http_headers,
|
|
607
|
+
security=self.sdk_configuration.security,
|
|
608
|
+
allow_empty_value=None,
|
|
609
|
+
allowed_fields=["client_id"],
|
|
610
|
+
timeout_ms=timeout_ms,
|
|
611
|
+
)
|
|
612
|
+
|
|
613
|
+
if retries == UNSET:
|
|
614
|
+
if self.sdk_configuration.retry_config is not UNSET:
|
|
615
|
+
retries = self.sdk_configuration.retry_config
|
|
616
|
+
else:
|
|
617
|
+
retries = utils.RetryConfig(
|
|
618
|
+
"backoff", utils.BackoffStrategy(500, 8000, 1.5, 60000), True
|
|
619
|
+
)
|
|
620
|
+
|
|
621
|
+
retry_config = None
|
|
622
|
+
if isinstance(retries, utils.RetryConfig):
|
|
623
|
+
retry_config = (retries, ["429", "500", "502", "503", "504"])
|
|
624
|
+
|
|
625
|
+
http_res = self.do_request(
|
|
626
|
+
hook_ctx=HookContext(
|
|
627
|
+
config=self.sdk_configuration,
|
|
628
|
+
base_url=base_url or "",
|
|
629
|
+
operation_id="getCompanyPeers",
|
|
630
|
+
oauth2_scopes=["market:supplemental"],
|
|
631
|
+
security_source=self.sdk_configuration.security,
|
|
632
|
+
tags=["Company"],
|
|
633
|
+
extensions=None,
|
|
634
|
+
),
|
|
635
|
+
request=req,
|
|
636
|
+
is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c),
|
|
637
|
+
retry_config=retry_config,
|
|
638
|
+
)
|
|
639
|
+
|
|
640
|
+
response_data: Any = None
|
|
641
|
+
if utils.match_response(http_res, "200", "application/json"):
|
|
642
|
+
return models.GetCompanyPeersResponse(
|
|
643
|
+
company_peers_response=unmarshal_json_response(
|
|
644
|
+
Optional[models.CompanyPeersResponse], http_res
|
|
645
|
+
),
|
|
646
|
+
http_meta=models.HTTPMetadata(request=req, response=http_res),
|
|
647
|
+
)
|
|
648
|
+
if utils.match_response(http_res, "400", "application/json"):
|
|
649
|
+
response_data = unmarshal_json_response(errors.BadRequestUnion, http_res)
|
|
650
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
651
|
+
request=req, response=http_res
|
|
652
|
+
)
|
|
653
|
+
raise errors.BadRequest(response_data, http_res)
|
|
654
|
+
if utils.match_response(http_res, "401", "application/json"):
|
|
655
|
+
response_data = unmarshal_json_response(errors.UnauthorizedUnion, http_res)
|
|
656
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
657
|
+
request=req, response=http_res
|
|
658
|
+
)
|
|
659
|
+
raise errors.Unauthorized(response_data, http_res)
|
|
660
|
+
if utils.match_response(http_res, "403", "application/json"):
|
|
661
|
+
response_data = unmarshal_json_response(errors.ForbiddenUnion, http_res)
|
|
662
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
663
|
+
request=req, response=http_res
|
|
664
|
+
)
|
|
665
|
+
raise errors.Forbidden(response_data, http_res)
|
|
666
|
+
if utils.match_response(http_res, "404", "application/json"):
|
|
667
|
+
response_data = unmarshal_json_response(errors.NotFoundUnion, http_res)
|
|
668
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
669
|
+
request=req, response=http_res
|
|
670
|
+
)
|
|
671
|
+
raise errors.NotFound(response_data, http_res)
|
|
672
|
+
if utils.match_response(http_res, "500", "application/json"):
|
|
673
|
+
response_data = unmarshal_json_response(
|
|
674
|
+
errors.InternalServerErrorUnion, http_res
|
|
675
|
+
)
|
|
676
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
677
|
+
request=req, response=http_res
|
|
678
|
+
)
|
|
679
|
+
raise errors.InternalServerError(response_data, http_res)
|
|
680
|
+
if utils.match_response(http_res, "4XX", "*"):
|
|
681
|
+
http_res_text = utils.stream_to_text(http_res)
|
|
682
|
+
raise errors.APIError("API error occurred", http_res, http_res_text)
|
|
683
|
+
if utils.match_response(http_res, "5XX", "*"):
|
|
684
|
+
http_res_text = utils.stream_to_text(http_res)
|
|
685
|
+
raise errors.APIError("API error occurred", http_res, http_res_text)
|
|
686
|
+
|
|
687
|
+
raise errors.APIError("Unexpected response received", http_res)
|
|
688
|
+
|
|
689
|
+
async def get_company_peers_async(
|
|
690
|
+
self,
|
|
691
|
+
*,
|
|
692
|
+
symbol: str,
|
|
693
|
+
retries: OptionalNullable[utils.RetryConfig] = UNSET,
|
|
694
|
+
server_url: Optional[str] = None,
|
|
695
|
+
timeout_ms: Optional[int] = None,
|
|
696
|
+
http_headers: Optional[Mapping[str, str]] = None,
|
|
697
|
+
) -> models.GetCompanyPeersResponse:
|
|
698
|
+
r"""Get Company Peers
|
|
699
|
+
|
|
700
|
+
Retrieve a list of peer companies within the same industry or sector that are comparable in size and business model.
|
|
701
|
+
|
|
702
|
+
Returns 404 Not Found with error code `NOT_FOUND` when no peers are available for the specified symbol.
|
|
703
|
+
|
|
704
|
+
If set, this operation will use `client_id` from the global security.
|
|
705
|
+
|
|
706
|
+
:param symbol: Stock ticker symbol to research, such as AAPL.
|
|
707
|
+
:param retries: Override the default retry configuration for this method
|
|
708
|
+
:param server_url: Override the default server URL for this method
|
|
709
|
+
:param timeout_ms: Override the default request timeout configuration for this method in milliseconds
|
|
710
|
+
:param http_headers: Additional headers to set or replace on requests.
|
|
711
|
+
"""
|
|
712
|
+
base_url = None
|
|
713
|
+
url_variables = None
|
|
714
|
+
if timeout_ms is None:
|
|
715
|
+
timeout_ms = self.sdk_configuration.timeout_ms
|
|
716
|
+
|
|
717
|
+
if timeout_ms is None:
|
|
718
|
+
timeout_ms = 30000
|
|
719
|
+
|
|
720
|
+
if server_url is not None:
|
|
721
|
+
base_url = server_url
|
|
722
|
+
else:
|
|
723
|
+
base_url = self._get_url(base_url, url_variables)
|
|
724
|
+
|
|
725
|
+
request = models.GetCompanyPeersRequest(
|
|
726
|
+
symbol=symbol,
|
|
727
|
+
)
|
|
728
|
+
|
|
729
|
+
req = self._build_request_async(
|
|
730
|
+
method="GET",
|
|
731
|
+
path="/v1/company/peers",
|
|
732
|
+
base_url=base_url,
|
|
733
|
+
url_variables=url_variables,
|
|
734
|
+
request=request,
|
|
735
|
+
request_body_required=False,
|
|
736
|
+
request_has_path_params=False,
|
|
737
|
+
request_has_query_params=True,
|
|
738
|
+
user_agent_header="user-agent",
|
|
739
|
+
accept_header_value="application/json",
|
|
740
|
+
http_headers=http_headers,
|
|
741
|
+
security=self.sdk_configuration.security,
|
|
742
|
+
allow_empty_value=None,
|
|
743
|
+
allowed_fields=["client_id"],
|
|
744
|
+
timeout_ms=timeout_ms,
|
|
745
|
+
)
|
|
746
|
+
|
|
747
|
+
if retries == UNSET:
|
|
748
|
+
if self.sdk_configuration.retry_config is not UNSET:
|
|
749
|
+
retries = self.sdk_configuration.retry_config
|
|
750
|
+
else:
|
|
751
|
+
retries = utils.RetryConfig(
|
|
752
|
+
"backoff", utils.BackoffStrategy(500, 8000, 1.5, 60000), True
|
|
753
|
+
)
|
|
754
|
+
|
|
755
|
+
retry_config = None
|
|
756
|
+
if isinstance(retries, utils.RetryConfig):
|
|
757
|
+
retry_config = (retries, ["429", "500", "502", "503", "504"])
|
|
758
|
+
|
|
759
|
+
http_res = await self.do_request_async(
|
|
760
|
+
hook_ctx=HookContext(
|
|
761
|
+
config=self.sdk_configuration,
|
|
762
|
+
base_url=base_url or "",
|
|
763
|
+
operation_id="getCompanyPeers",
|
|
764
|
+
oauth2_scopes=["market:supplemental"],
|
|
765
|
+
security_source=self.sdk_configuration.security,
|
|
766
|
+
tags=["Company"],
|
|
767
|
+
extensions=None,
|
|
768
|
+
),
|
|
769
|
+
request=req,
|
|
770
|
+
is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c),
|
|
771
|
+
retry_config=retry_config,
|
|
772
|
+
)
|
|
773
|
+
|
|
774
|
+
response_data: Any = None
|
|
775
|
+
if utils.match_response(http_res, "200", "application/json"):
|
|
776
|
+
return models.GetCompanyPeersResponse(
|
|
777
|
+
company_peers_response=unmarshal_json_response(
|
|
778
|
+
Optional[models.CompanyPeersResponse], http_res
|
|
779
|
+
),
|
|
780
|
+
http_meta=models.HTTPMetadata(request=req, response=http_res),
|
|
781
|
+
)
|
|
782
|
+
if utils.match_response(http_res, "400", "application/json"):
|
|
783
|
+
response_data = unmarshal_json_response(errors.BadRequestUnion, http_res)
|
|
784
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
785
|
+
request=req, response=http_res
|
|
786
|
+
)
|
|
787
|
+
raise errors.BadRequest(response_data, http_res)
|
|
788
|
+
if utils.match_response(http_res, "401", "application/json"):
|
|
789
|
+
response_data = unmarshal_json_response(errors.UnauthorizedUnion, http_res)
|
|
790
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
791
|
+
request=req, response=http_res
|
|
792
|
+
)
|
|
793
|
+
raise errors.Unauthorized(response_data, http_res)
|
|
794
|
+
if utils.match_response(http_res, "403", "application/json"):
|
|
795
|
+
response_data = unmarshal_json_response(errors.ForbiddenUnion, http_res)
|
|
796
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
797
|
+
request=req, response=http_res
|
|
798
|
+
)
|
|
799
|
+
raise errors.Forbidden(response_data, http_res)
|
|
800
|
+
if utils.match_response(http_res, "404", "application/json"):
|
|
801
|
+
response_data = unmarshal_json_response(errors.NotFoundUnion, http_res)
|
|
802
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
803
|
+
request=req, response=http_res
|
|
804
|
+
)
|
|
805
|
+
raise errors.NotFound(response_data, http_res)
|
|
806
|
+
if utils.match_response(http_res, "500", "application/json"):
|
|
807
|
+
response_data = unmarshal_json_response(
|
|
808
|
+
errors.InternalServerErrorUnion, http_res
|
|
809
|
+
)
|
|
810
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
811
|
+
request=req, response=http_res
|
|
812
|
+
)
|
|
813
|
+
raise errors.InternalServerError(response_data, http_res)
|
|
814
|
+
if utils.match_response(http_res, "4XX", "*"):
|
|
815
|
+
http_res_text = await utils.stream_to_text_async(http_res)
|
|
816
|
+
raise errors.APIError("API error occurred", http_res, http_res_text)
|
|
817
|
+
if utils.match_response(http_res, "5XX", "*"):
|
|
818
|
+
http_res_text = await utils.stream_to_text_async(http_res)
|
|
819
|
+
raise errors.APIError("API error occurred", http_res, http_res_text)
|
|
820
|
+
|
|
821
|
+
raise errors.APIError("Unexpected response received", http_res)
|
|
822
|
+
|
|
823
|
+
def get_company_profile(
|
|
824
|
+
self,
|
|
825
|
+
*,
|
|
826
|
+
symbol: Optional[str] = None,
|
|
827
|
+
isin: Optional[str] = None,
|
|
828
|
+
cusip: Optional[str] = None,
|
|
829
|
+
retries: OptionalNullable[utils.RetryConfig] = UNSET,
|
|
830
|
+
server_url: Optional[str] = None,
|
|
831
|
+
timeout_ms: Optional[int] = None,
|
|
832
|
+
http_headers: Optional[Mapping[str, str]] = None,
|
|
833
|
+
) -> models.GetCompanyProfileResponse:
|
|
834
|
+
r"""Get Company Profile
|
|
835
|
+
|
|
836
|
+
Retrieve comprehensive company information including business description, industry classification, headquarters location, and key identifiers. At least one of symbol, ISIN, or CUSIP must be provided. If all three are omitted, the API returns 400 Bad Request. Response includes masked logo URL for privacy.
|
|
837
|
+
|
|
838
|
+
At least one of symbol, isin, or cusip is required. Multiple identifiers are accepted.
|
|
839
|
+
|
|
840
|
+
Returns 404 Not Found with error code `NOT_FOUND` when no company profile matches the supplied identifiers.
|
|
841
|
+
|
|
842
|
+
If set, this operation will use `client_id` from the global security.
|
|
843
|
+
|
|
844
|
+
:param symbol: 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.
|
|
845
|
+
:param isin: 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.
|
|
846
|
+
:param cusip: 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.
|
|
847
|
+
:param retries: Override the default retry configuration for this method
|
|
848
|
+
:param server_url: Override the default server URL for this method
|
|
849
|
+
:param timeout_ms: Override the default request timeout configuration for this method in milliseconds
|
|
850
|
+
:param http_headers: Additional headers to set or replace on requests.
|
|
851
|
+
"""
|
|
852
|
+
base_url = None
|
|
853
|
+
url_variables = None
|
|
854
|
+
if timeout_ms is None:
|
|
855
|
+
timeout_ms = self.sdk_configuration.timeout_ms
|
|
856
|
+
|
|
857
|
+
if timeout_ms is None:
|
|
858
|
+
timeout_ms = 30000
|
|
859
|
+
|
|
860
|
+
if server_url is not None:
|
|
861
|
+
base_url = server_url
|
|
862
|
+
else:
|
|
863
|
+
base_url = self._get_url(base_url, url_variables)
|
|
864
|
+
|
|
865
|
+
request = models.GetCompanyProfileRequest(
|
|
866
|
+
symbol=symbol,
|
|
867
|
+
isin=isin,
|
|
868
|
+
cusip=cusip,
|
|
869
|
+
)
|
|
870
|
+
|
|
871
|
+
req = self._build_request(
|
|
872
|
+
method="GET",
|
|
873
|
+
path="/v1/company/profile",
|
|
874
|
+
base_url=base_url,
|
|
875
|
+
url_variables=url_variables,
|
|
876
|
+
request=request,
|
|
877
|
+
request_body_required=False,
|
|
878
|
+
request_has_path_params=False,
|
|
879
|
+
request_has_query_params=True,
|
|
880
|
+
user_agent_header="user-agent",
|
|
881
|
+
accept_header_value="application/json",
|
|
882
|
+
http_headers=http_headers,
|
|
883
|
+
security=self.sdk_configuration.security,
|
|
884
|
+
allow_empty_value=None,
|
|
885
|
+
allowed_fields=["client_id"],
|
|
886
|
+
timeout_ms=timeout_ms,
|
|
887
|
+
)
|
|
888
|
+
|
|
889
|
+
if retries == UNSET:
|
|
890
|
+
if self.sdk_configuration.retry_config is not UNSET:
|
|
891
|
+
retries = self.sdk_configuration.retry_config
|
|
892
|
+
else:
|
|
893
|
+
retries = utils.RetryConfig(
|
|
894
|
+
"backoff", utils.BackoffStrategy(500, 8000, 1.5, 60000), True
|
|
895
|
+
)
|
|
896
|
+
|
|
897
|
+
retry_config = None
|
|
898
|
+
if isinstance(retries, utils.RetryConfig):
|
|
899
|
+
retry_config = (retries, ["429", "500", "502", "503", "504"])
|
|
900
|
+
|
|
901
|
+
http_res = self.do_request(
|
|
902
|
+
hook_ctx=HookContext(
|
|
903
|
+
config=self.sdk_configuration,
|
|
904
|
+
base_url=base_url or "",
|
|
905
|
+
operation_id="getCompanyProfile",
|
|
906
|
+
oauth2_scopes=["market:supplemental"],
|
|
907
|
+
security_source=self.sdk_configuration.security,
|
|
908
|
+
tags=["Company"],
|
|
909
|
+
extensions=None,
|
|
910
|
+
),
|
|
911
|
+
request=req,
|
|
912
|
+
is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c),
|
|
913
|
+
retry_config=retry_config,
|
|
914
|
+
)
|
|
915
|
+
|
|
916
|
+
response_data: Any = None
|
|
917
|
+
if utils.match_response(http_res, "200", "application/json"):
|
|
918
|
+
return models.GetCompanyProfileResponse(
|
|
919
|
+
company_profile=unmarshal_json_response(
|
|
920
|
+
Optional[models.CompanyProfile], http_res
|
|
921
|
+
),
|
|
922
|
+
http_meta=models.HTTPMetadata(request=req, response=http_res),
|
|
923
|
+
)
|
|
924
|
+
if utils.match_response(http_res, "400", "application/json"):
|
|
925
|
+
response_data = unmarshal_json_response(errors.BadRequestUnion, http_res)
|
|
926
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
927
|
+
request=req, response=http_res
|
|
928
|
+
)
|
|
929
|
+
raise errors.BadRequest(response_data, http_res)
|
|
930
|
+
if utils.match_response(http_res, "401", "application/json"):
|
|
931
|
+
response_data = unmarshal_json_response(errors.UnauthorizedUnion, http_res)
|
|
932
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
933
|
+
request=req, response=http_res
|
|
934
|
+
)
|
|
935
|
+
raise errors.Unauthorized(response_data, http_res)
|
|
936
|
+
if utils.match_response(http_res, "403", "application/json"):
|
|
937
|
+
response_data = unmarshal_json_response(errors.ForbiddenUnion, http_res)
|
|
938
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
939
|
+
request=req, response=http_res
|
|
940
|
+
)
|
|
941
|
+
raise errors.Forbidden(response_data, http_res)
|
|
942
|
+
if utils.match_response(http_res, "404", "application/json"):
|
|
943
|
+
response_data = unmarshal_json_response(errors.NotFoundUnion, http_res)
|
|
944
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
945
|
+
request=req, response=http_res
|
|
946
|
+
)
|
|
947
|
+
raise errors.NotFound(response_data, http_res)
|
|
948
|
+
if utils.match_response(http_res, "500", "application/json"):
|
|
949
|
+
response_data = unmarshal_json_response(
|
|
950
|
+
errors.InternalServerErrorUnion, http_res
|
|
951
|
+
)
|
|
952
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
953
|
+
request=req, response=http_res
|
|
954
|
+
)
|
|
955
|
+
raise errors.InternalServerError(response_data, http_res)
|
|
956
|
+
if utils.match_response(http_res, "4XX", "*"):
|
|
957
|
+
http_res_text = utils.stream_to_text(http_res)
|
|
958
|
+
raise errors.APIError("API error occurred", http_res, http_res_text)
|
|
959
|
+
if utils.match_response(http_res, "5XX", "*"):
|
|
960
|
+
http_res_text = utils.stream_to_text(http_res)
|
|
961
|
+
raise errors.APIError("API error occurred", http_res, http_res_text)
|
|
962
|
+
|
|
963
|
+
raise errors.APIError("Unexpected response received", http_res)
|
|
964
|
+
|
|
965
|
+
async def get_company_profile_async(
|
|
966
|
+
self,
|
|
967
|
+
*,
|
|
968
|
+
symbol: Optional[str] = None,
|
|
969
|
+
isin: Optional[str] = None,
|
|
970
|
+
cusip: Optional[str] = None,
|
|
971
|
+
retries: OptionalNullable[utils.RetryConfig] = UNSET,
|
|
972
|
+
server_url: Optional[str] = None,
|
|
973
|
+
timeout_ms: Optional[int] = None,
|
|
974
|
+
http_headers: Optional[Mapping[str, str]] = None,
|
|
975
|
+
) -> models.GetCompanyProfileResponse:
|
|
976
|
+
r"""Get Company Profile
|
|
977
|
+
|
|
978
|
+
Retrieve comprehensive company information including business description, industry classification, headquarters location, and key identifiers. At least one of symbol, ISIN, or CUSIP must be provided. If all three are omitted, the API returns 400 Bad Request. Response includes masked logo URL for privacy.
|
|
979
|
+
|
|
980
|
+
At least one of symbol, isin, or cusip is required. Multiple identifiers are accepted.
|
|
981
|
+
|
|
982
|
+
Returns 404 Not Found with error code `NOT_FOUND` when no company profile matches the supplied identifiers.
|
|
983
|
+
|
|
984
|
+
If set, this operation will use `client_id` from the global security.
|
|
985
|
+
|
|
986
|
+
:param symbol: 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.
|
|
987
|
+
:param isin: 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.
|
|
988
|
+
:param cusip: 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.
|
|
989
|
+
:param retries: Override the default retry configuration for this method
|
|
990
|
+
:param server_url: Override the default server URL for this method
|
|
991
|
+
:param timeout_ms: Override the default request timeout configuration for this method in milliseconds
|
|
992
|
+
:param http_headers: Additional headers to set or replace on requests.
|
|
993
|
+
"""
|
|
994
|
+
base_url = None
|
|
995
|
+
url_variables = None
|
|
996
|
+
if timeout_ms is None:
|
|
997
|
+
timeout_ms = self.sdk_configuration.timeout_ms
|
|
998
|
+
|
|
999
|
+
if timeout_ms is None:
|
|
1000
|
+
timeout_ms = 30000
|
|
1001
|
+
|
|
1002
|
+
if server_url is not None:
|
|
1003
|
+
base_url = server_url
|
|
1004
|
+
else:
|
|
1005
|
+
base_url = self._get_url(base_url, url_variables)
|
|
1006
|
+
|
|
1007
|
+
request = models.GetCompanyProfileRequest(
|
|
1008
|
+
symbol=symbol,
|
|
1009
|
+
isin=isin,
|
|
1010
|
+
cusip=cusip,
|
|
1011
|
+
)
|
|
1012
|
+
|
|
1013
|
+
req = self._build_request_async(
|
|
1014
|
+
method="GET",
|
|
1015
|
+
path="/v1/company/profile",
|
|
1016
|
+
base_url=base_url,
|
|
1017
|
+
url_variables=url_variables,
|
|
1018
|
+
request=request,
|
|
1019
|
+
request_body_required=False,
|
|
1020
|
+
request_has_path_params=False,
|
|
1021
|
+
request_has_query_params=True,
|
|
1022
|
+
user_agent_header="user-agent",
|
|
1023
|
+
accept_header_value="application/json",
|
|
1024
|
+
http_headers=http_headers,
|
|
1025
|
+
security=self.sdk_configuration.security,
|
|
1026
|
+
allow_empty_value=None,
|
|
1027
|
+
allowed_fields=["client_id"],
|
|
1028
|
+
timeout_ms=timeout_ms,
|
|
1029
|
+
)
|
|
1030
|
+
|
|
1031
|
+
if retries == UNSET:
|
|
1032
|
+
if self.sdk_configuration.retry_config is not UNSET:
|
|
1033
|
+
retries = self.sdk_configuration.retry_config
|
|
1034
|
+
else:
|
|
1035
|
+
retries = utils.RetryConfig(
|
|
1036
|
+
"backoff", utils.BackoffStrategy(500, 8000, 1.5, 60000), True
|
|
1037
|
+
)
|
|
1038
|
+
|
|
1039
|
+
retry_config = None
|
|
1040
|
+
if isinstance(retries, utils.RetryConfig):
|
|
1041
|
+
retry_config = (retries, ["429", "500", "502", "503", "504"])
|
|
1042
|
+
|
|
1043
|
+
http_res = await self.do_request_async(
|
|
1044
|
+
hook_ctx=HookContext(
|
|
1045
|
+
config=self.sdk_configuration,
|
|
1046
|
+
base_url=base_url or "",
|
|
1047
|
+
operation_id="getCompanyProfile",
|
|
1048
|
+
oauth2_scopes=["market:supplemental"],
|
|
1049
|
+
security_source=self.sdk_configuration.security,
|
|
1050
|
+
tags=["Company"],
|
|
1051
|
+
extensions=None,
|
|
1052
|
+
),
|
|
1053
|
+
request=req,
|
|
1054
|
+
is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c),
|
|
1055
|
+
retry_config=retry_config,
|
|
1056
|
+
)
|
|
1057
|
+
|
|
1058
|
+
response_data: Any = None
|
|
1059
|
+
if utils.match_response(http_res, "200", "application/json"):
|
|
1060
|
+
return models.GetCompanyProfileResponse(
|
|
1061
|
+
company_profile=unmarshal_json_response(
|
|
1062
|
+
Optional[models.CompanyProfile], http_res
|
|
1063
|
+
),
|
|
1064
|
+
http_meta=models.HTTPMetadata(request=req, response=http_res),
|
|
1065
|
+
)
|
|
1066
|
+
if utils.match_response(http_res, "400", "application/json"):
|
|
1067
|
+
response_data = unmarshal_json_response(errors.BadRequestUnion, http_res)
|
|
1068
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
1069
|
+
request=req, response=http_res
|
|
1070
|
+
)
|
|
1071
|
+
raise errors.BadRequest(response_data, http_res)
|
|
1072
|
+
if utils.match_response(http_res, "401", "application/json"):
|
|
1073
|
+
response_data = unmarshal_json_response(errors.UnauthorizedUnion, http_res)
|
|
1074
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
1075
|
+
request=req, response=http_res
|
|
1076
|
+
)
|
|
1077
|
+
raise errors.Unauthorized(response_data, http_res)
|
|
1078
|
+
if utils.match_response(http_res, "403", "application/json"):
|
|
1079
|
+
response_data = unmarshal_json_response(errors.ForbiddenUnion, http_res)
|
|
1080
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
1081
|
+
request=req, response=http_res
|
|
1082
|
+
)
|
|
1083
|
+
raise errors.Forbidden(response_data, http_res)
|
|
1084
|
+
if utils.match_response(http_res, "404", "application/json"):
|
|
1085
|
+
response_data = unmarshal_json_response(errors.NotFoundUnion, http_res)
|
|
1086
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
1087
|
+
request=req, response=http_res
|
|
1088
|
+
)
|
|
1089
|
+
raise errors.NotFound(response_data, http_res)
|
|
1090
|
+
if utils.match_response(http_res, "500", "application/json"):
|
|
1091
|
+
response_data = unmarshal_json_response(
|
|
1092
|
+
errors.InternalServerErrorUnion, http_res
|
|
1093
|
+
)
|
|
1094
|
+
response_data.http_meta = models.HTTPMetadata(
|
|
1095
|
+
request=req, response=http_res
|
|
1096
|
+
)
|
|
1097
|
+
raise errors.InternalServerError(response_data, http_res)
|
|
1098
|
+
if utils.match_response(http_res, "4XX", "*"):
|
|
1099
|
+
http_res_text = await utils.stream_to_text_async(http_res)
|
|
1100
|
+
raise errors.APIError("API error occurred", http_res, http_res_text)
|
|
1101
|
+
if utils.match_response(http_res, "5XX", "*"):
|
|
1102
|
+
http_res_text = await utils.stream_to_text_async(http_res)
|
|
1103
|
+
raise errors.APIError("API error occurred", http_res, http_res_text)
|
|
1104
|
+
|
|
1105
|
+
raise errors.APIError("Unexpected response received", http_res)
|