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,78 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 753a97b98b48
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .symboldetails import SymbolDetails, SymbolDetailsTypedDict
|
|
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 List, Optional
|
|
12
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class GetTopLosersRequestTypedDict(TypedDict):
|
|
16
|
+
limit: NotRequired[int]
|
|
17
|
+
r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits. (optional, default 10)"""
|
|
18
|
+
size: NotRequired[int]
|
|
19
|
+
r"""Alias for limit. Ignored when limit is supplied."""
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class GetTopLosersRequest(BaseModel):
|
|
23
|
+
limit: Annotated[
|
|
24
|
+
Optional[int],
|
|
25
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
26
|
+
] = 10
|
|
27
|
+
r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits. (optional, default 10)"""
|
|
28
|
+
|
|
29
|
+
size: Annotated[
|
|
30
|
+
Optional[int],
|
|
31
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
32
|
+
] = 10
|
|
33
|
+
r"""Alias for limit. Ignored when limit is supplied."""
|
|
34
|
+
|
|
35
|
+
@model_serializer(mode="wrap")
|
|
36
|
+
def serialize_model(self, handler):
|
|
37
|
+
optional_fields = set(["limit", "size"])
|
|
38
|
+
serialized = handler(self)
|
|
39
|
+
m = {}
|
|
40
|
+
|
|
41
|
+
for n, f in type(self).model_fields.items():
|
|
42
|
+
k = f.alias or n
|
|
43
|
+
val = serialized.get(k, serialized.get(n))
|
|
44
|
+
|
|
45
|
+
if val != UNSET_SENTINEL:
|
|
46
|
+
if val is not None or k not in optional_fields:
|
|
47
|
+
m[k] = val
|
|
48
|
+
|
|
49
|
+
return m
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
class GetTopLosersResponseTypedDict(TypedDict):
|
|
53
|
+
http_meta: HTTPMetadataTypedDict
|
|
54
|
+
symbol_details: NotRequired[List[SymbolDetailsTypedDict]]
|
|
55
|
+
r"""Top losing stocks retrieved successfully"""
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
class GetTopLosersResponse(BaseModel):
|
|
59
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
60
|
+
|
|
61
|
+
symbol_details: Optional[List[SymbolDetails]] = None
|
|
62
|
+
r"""Top losing stocks retrieved successfully"""
|
|
63
|
+
|
|
64
|
+
@model_serializer(mode="wrap")
|
|
65
|
+
def serialize_model(self, handler):
|
|
66
|
+
optional_fields = set(["SymbolDetails"])
|
|
67
|
+
serialized = handler(self)
|
|
68
|
+
m = {}
|
|
69
|
+
|
|
70
|
+
for n, f in type(self).model_fields.items():
|
|
71
|
+
k = f.alias or n
|
|
72
|
+
val = serialized.get(k, serialized.get(n))
|
|
73
|
+
|
|
74
|
+
if val != UNSET_SENTINEL:
|
|
75
|
+
if val is not None or k not in optional_fields:
|
|
76
|
+
m[k] = val
|
|
77
|
+
|
|
78
|
+
return m
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 5b0fae8f94a9
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .symboldetails import SymbolDetails, SymbolDetailsTypedDict
|
|
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 List, Optional
|
|
12
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class GetTopMostActiveRequestTypedDict(TypedDict):
|
|
16
|
+
limit: NotRequired[int]
|
|
17
|
+
r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits. (optional, default 10)"""
|
|
18
|
+
size: NotRequired[int]
|
|
19
|
+
r"""Alias for limit. Ignored when limit is supplied."""
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class GetTopMostActiveRequest(BaseModel):
|
|
23
|
+
limit: Annotated[
|
|
24
|
+
Optional[int],
|
|
25
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
26
|
+
] = 10
|
|
27
|
+
r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits. (optional, default 10)"""
|
|
28
|
+
|
|
29
|
+
size: Annotated[
|
|
30
|
+
Optional[int],
|
|
31
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
32
|
+
] = 10
|
|
33
|
+
r"""Alias for limit. Ignored when limit is supplied."""
|
|
34
|
+
|
|
35
|
+
@model_serializer(mode="wrap")
|
|
36
|
+
def serialize_model(self, handler):
|
|
37
|
+
optional_fields = set(["limit", "size"])
|
|
38
|
+
serialized = handler(self)
|
|
39
|
+
m = {}
|
|
40
|
+
|
|
41
|
+
for n, f in type(self).model_fields.items():
|
|
42
|
+
k = f.alias or n
|
|
43
|
+
val = serialized.get(k, serialized.get(n))
|
|
44
|
+
|
|
45
|
+
if val != UNSET_SENTINEL:
|
|
46
|
+
if val is not None or k not in optional_fields:
|
|
47
|
+
m[k] = val
|
|
48
|
+
|
|
49
|
+
return m
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
class GetTopMostActiveResponseTypedDict(TypedDict):
|
|
53
|
+
http_meta: HTTPMetadataTypedDict
|
|
54
|
+
symbol_details: NotRequired[List[SymbolDetailsTypedDict]]
|
|
55
|
+
r"""Most active stocks retrieved successfully"""
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
class GetTopMostActiveResponse(BaseModel):
|
|
59
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
60
|
+
|
|
61
|
+
symbol_details: Optional[List[SymbolDetails]] = None
|
|
62
|
+
r"""Most active stocks retrieved successfully"""
|
|
63
|
+
|
|
64
|
+
@model_serializer(mode="wrap")
|
|
65
|
+
def serialize_model(self, handler):
|
|
66
|
+
optional_fields = set(["SymbolDetails"])
|
|
67
|
+
serialized = handler(self)
|
|
68
|
+
m = {}
|
|
69
|
+
|
|
70
|
+
for n, f in type(self).model_fields.items():
|
|
71
|
+
k = f.alias or n
|
|
72
|
+
val = serialized.get(k, serialized.get(n))
|
|
73
|
+
|
|
74
|
+
if val != UNSET_SENTINEL:
|
|
75
|
+
if val is not None or k not in optional_fields:
|
|
76
|
+
m[k] = val
|
|
77
|
+
|
|
78
|
+
return m
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: cc6c1aac3af7
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .transcriptresponse import TranscriptResponse, TranscriptResponseTypedDict
|
|
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 GetTranscriptRequestTypedDict(TypedDict):
|
|
16
|
+
id: str
|
|
17
|
+
r"""Unique identifier for an earnings-call transcript. Obtain it from `/v1/stock/transcripts/list` for the symbol you want."""
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetTranscriptRequest(BaseModel):
|
|
21
|
+
id: Annotated[
|
|
22
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
23
|
+
]
|
|
24
|
+
r"""Unique identifier for an earnings-call transcript. Obtain it from `/v1/stock/transcripts/list` for the symbol you want."""
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class GetTranscriptResponseTypedDict(TypedDict):
|
|
28
|
+
http_meta: HTTPMetadataTypedDict
|
|
29
|
+
transcript_response: NotRequired[TranscriptResponseTypedDict]
|
|
30
|
+
r"""Transcript content."""
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class GetTranscriptResponse(BaseModel):
|
|
34
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
35
|
+
|
|
36
|
+
transcript_response: Optional[TranscriptResponse] = None
|
|
37
|
+
r"""Transcript content."""
|
|
38
|
+
|
|
39
|
+
@model_serializer(mode="wrap")
|
|
40
|
+
def serialize_model(self, handler):
|
|
41
|
+
optional_fields = set(["TranscriptResponse"])
|
|
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,157 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: a77474b299e0
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .treasuryyieldsresponse import (
|
|
7
|
+
TreasuryYieldsResponse,
|
|
8
|
+
TreasuryYieldsResponseTypedDict,
|
|
9
|
+
)
|
|
10
|
+
from datetime import date
|
|
11
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
12
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
13
|
+
import pydantic
|
|
14
|
+
from pydantic import model_serializer
|
|
15
|
+
from typing import Callable, Optional
|
|
16
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class GetTreasuryYieldsRequestTypedDict(TypedDict):
|
|
20
|
+
date_: NotRequired[date]
|
|
21
|
+
r"""Exact date in YYYY-MM-DD format. Use this when you want one specific calendar day."""
|
|
22
|
+
dates: NotRequired[str]
|
|
23
|
+
r"""Comma-separated list of dates in YYYY-MM-DD format. Use this when you want several specific dates in one request."""
|
|
24
|
+
date_from: NotRequired[date]
|
|
25
|
+
r"""Start-date filter. Returns records on or after this date."""
|
|
26
|
+
date_to: NotRequired[date]
|
|
27
|
+
r"""End-date filter. Returns records on or before this date."""
|
|
28
|
+
date_after: NotRequired[date]
|
|
29
|
+
r"""After-date filter. Returns records after this date, excluding the date itself."""
|
|
30
|
+
date_before: NotRequired[date]
|
|
31
|
+
r"""Before-date filter. Returns records before this date, excluding the date itself."""
|
|
32
|
+
limit: NotRequired[int]
|
|
33
|
+
r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits."""
|
|
34
|
+
sort: NotRequired[str]
|
|
35
|
+
r"""A comma-separated list of sort columns. For each column, append `.asc` or `.desc` to specify direction. Massive documents this family with date-based sorting; use provider-supported column names in the text box."""
|
|
36
|
+
next: NotRequired[str]
|
|
37
|
+
r"""Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page."""
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class GetTreasuryYieldsRequest(BaseModel):
|
|
41
|
+
date_: Annotated[
|
|
42
|
+
Optional[date],
|
|
43
|
+
pydantic.Field(alias="date"),
|
|
44
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
45
|
+
] = None
|
|
46
|
+
r"""Exact date in YYYY-MM-DD format. Use this when you want one specific calendar day."""
|
|
47
|
+
|
|
48
|
+
dates: Annotated[
|
|
49
|
+
Optional[str],
|
|
50
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
51
|
+
] = None
|
|
52
|
+
r"""Comma-separated list of dates in YYYY-MM-DD format. Use this when you want several specific dates in one request."""
|
|
53
|
+
|
|
54
|
+
date_from: Annotated[
|
|
55
|
+
Optional[date],
|
|
56
|
+
pydantic.Field(alias="dateFrom"),
|
|
57
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
58
|
+
] = None
|
|
59
|
+
r"""Start-date filter. Returns records on or after this date."""
|
|
60
|
+
|
|
61
|
+
date_to: Annotated[
|
|
62
|
+
Optional[date],
|
|
63
|
+
pydantic.Field(alias="dateTo"),
|
|
64
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
65
|
+
] = None
|
|
66
|
+
r"""End-date filter. Returns records on or before this date."""
|
|
67
|
+
|
|
68
|
+
date_after: Annotated[
|
|
69
|
+
Optional[date],
|
|
70
|
+
pydantic.Field(alias="dateAfter"),
|
|
71
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
72
|
+
] = None
|
|
73
|
+
r"""After-date filter. Returns records after this date, excluding the date itself."""
|
|
74
|
+
|
|
75
|
+
date_before: Annotated[
|
|
76
|
+
Optional[date],
|
|
77
|
+
pydantic.Field(alias="dateBefore"),
|
|
78
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
79
|
+
] = None
|
|
80
|
+
r"""Before-date filter. Returns records before this date, excluding the date itself."""
|
|
81
|
+
|
|
82
|
+
limit: Annotated[
|
|
83
|
+
Optional[int],
|
|
84
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
85
|
+
] = None
|
|
86
|
+
r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits."""
|
|
87
|
+
|
|
88
|
+
sort: Annotated[
|
|
89
|
+
Optional[str],
|
|
90
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
91
|
+
] = None
|
|
92
|
+
r"""A comma-separated list of sort columns. For each column, append `.asc` or `.desc` to specify direction. Massive documents this family with date-based sorting; use provider-supported column names in the text box."""
|
|
93
|
+
|
|
94
|
+
next: Annotated[
|
|
95
|
+
Optional[str],
|
|
96
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
97
|
+
] = None
|
|
98
|
+
r"""Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page."""
|
|
99
|
+
|
|
100
|
+
@model_serializer(mode="wrap")
|
|
101
|
+
def serialize_model(self, handler):
|
|
102
|
+
optional_fields = set(
|
|
103
|
+
[
|
|
104
|
+
"date",
|
|
105
|
+
"dates",
|
|
106
|
+
"dateFrom",
|
|
107
|
+
"dateTo",
|
|
108
|
+
"dateAfter",
|
|
109
|
+
"dateBefore",
|
|
110
|
+
"limit",
|
|
111
|
+
"sort",
|
|
112
|
+
"next",
|
|
113
|
+
]
|
|
114
|
+
)
|
|
115
|
+
serialized = handler(self)
|
|
116
|
+
m = {}
|
|
117
|
+
|
|
118
|
+
for n, f in type(self).model_fields.items():
|
|
119
|
+
k = f.alias or n
|
|
120
|
+
val = serialized.get(k, serialized.get(n))
|
|
121
|
+
|
|
122
|
+
if val != UNSET_SENTINEL:
|
|
123
|
+
if val is not None or k not in optional_fields:
|
|
124
|
+
m[k] = val
|
|
125
|
+
|
|
126
|
+
return m
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
class GetTreasuryYieldsResponseTypedDict(TypedDict):
|
|
130
|
+
http_meta: HTTPMetadataTypedDict
|
|
131
|
+
treasury_yields_response: NotRequired[TreasuryYieldsResponseTypedDict]
|
|
132
|
+
r"""Successful response"""
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
class GetTreasuryYieldsResponse(BaseModel):
|
|
136
|
+
next: Callable[[], Optional[GetTreasuryYieldsResponse]]
|
|
137
|
+
|
|
138
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
139
|
+
|
|
140
|
+
treasury_yields_response: Optional[TreasuryYieldsResponse] = None
|
|
141
|
+
r"""Successful response"""
|
|
142
|
+
|
|
143
|
+
@model_serializer(mode="wrap")
|
|
144
|
+
def serialize_model(self, handler):
|
|
145
|
+
optional_fields = set(["TreasuryYieldsResponse"])
|
|
146
|
+
serialized = handler(self)
|
|
147
|
+
m = {}
|
|
148
|
+
|
|
149
|
+
for n, f in type(self).model_fields.items():
|
|
150
|
+
k = f.alias or n
|
|
151
|
+
val = serialized.get(k, serialized.get(n))
|
|
152
|
+
|
|
153
|
+
if val != UNSET_SENTINEL:
|
|
154
|
+
if val is not None or k not in optional_fields:
|
|
155
|
+
m[k] = val
|
|
156
|
+
|
|
157
|
+
return m
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 74e82d45ca0e
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .unifiedsnapshotresponse import (
|
|
7
|
+
UnifiedSnapshotResponse,
|
|
8
|
+
UnifiedSnapshotResponseTypedDict,
|
|
9
|
+
)
|
|
10
|
+
from enum import Enum
|
|
11
|
+
from finance_dev import models, utils
|
|
12
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
13
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
14
|
+
import pydantic
|
|
15
|
+
from pydantic import field_serializer, model_serializer
|
|
16
|
+
from typing import Callable, Optional
|
|
17
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetUnifiedSnapshotType(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
21
|
+
r"""Asset class filter for unified snapshot."""
|
|
22
|
+
|
|
23
|
+
STOCKS = "stocks"
|
|
24
|
+
OPTIONS = "options"
|
|
25
|
+
FX = "fx"
|
|
26
|
+
CRYPTO = "crypto"
|
|
27
|
+
INDICES = "indices"
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class GetUnifiedSnapshotOrder(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
31
|
+
r"""Sort order for returned records. Use asc for oldest first or desc for newest first when supported."""
|
|
32
|
+
|
|
33
|
+
ASC = "asc"
|
|
34
|
+
DESC = "desc"
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
class GetUnifiedSnapshotRequestTypedDict(TypedDict):
|
|
38
|
+
type: NotRequired[GetUnifiedSnapshotType]
|
|
39
|
+
r"""Which asset class to include in the snapshot. Allowed values:
|
|
40
|
+
- `stocks` — equities and ETFs.
|
|
41
|
+
- `options` — option contracts.
|
|
42
|
+
- `fx` — foreign-exchange currency pairs.
|
|
43
|
+
- `crypto` — cryptocurrencies.
|
|
44
|
+
- `indices` — market indices like SPX, NDX, VIX.
|
|
45
|
+
"""
|
|
46
|
+
ticker: NotRequired[str]
|
|
47
|
+
r"""Single ticker symbol filter. Enter one ticker such as AAPL to narrow results to one company. In the docs playground, if you enter `ticker`, do not select `type`, because selecting `type` can clear the `ticker` field."""
|
|
48
|
+
tickers_any_of: NotRequired[str]
|
|
49
|
+
r"""Comma-separated list of ticker symbols (maximum 250)."""
|
|
50
|
+
ticker_from: NotRequired[str]
|
|
51
|
+
r"""Ticker lower-bound filter. Returns symbols alphabetically on or after this ticker."""
|
|
52
|
+
ticker_after: NotRequired[str]
|
|
53
|
+
r"""Ticker lower-bound filter. Returns symbols alphabetically after this ticker, excluding the ticker itself."""
|
|
54
|
+
ticker_to: NotRequired[str]
|
|
55
|
+
r"""Ticker upper-bound filter. Returns symbols alphabetically on or before this ticker."""
|
|
56
|
+
ticker_before: NotRequired[str]
|
|
57
|
+
r"""Ticker upper-bound filter. Returns symbols alphabetically before this ticker, excluding the ticker itself."""
|
|
58
|
+
order: NotRequired[GetUnifiedSnapshotOrder]
|
|
59
|
+
r"""Sort order for returned records. Use asc for oldest first or desc for newest first when supported."""
|
|
60
|
+
limit: NotRequired[int]
|
|
61
|
+
r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits."""
|
|
62
|
+
sort: NotRequired[str]
|
|
63
|
+
r"""Sort field used for ordering. Massive documents this separately from `order`, so enter the provider-supported field name in the text box, for example `ticker`."""
|
|
64
|
+
next: NotRequired[str]
|
|
65
|
+
r"""Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page."""
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
class GetUnifiedSnapshotRequest(BaseModel):
|
|
69
|
+
type: Annotated[
|
|
70
|
+
Optional[GetUnifiedSnapshotType],
|
|
71
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
72
|
+
] = None
|
|
73
|
+
r"""Which asset class to include in the snapshot. Allowed values:
|
|
74
|
+
- `stocks` — equities and ETFs.
|
|
75
|
+
- `options` — option contracts.
|
|
76
|
+
- `fx` — foreign-exchange currency pairs.
|
|
77
|
+
- `crypto` — cryptocurrencies.
|
|
78
|
+
- `indices` — market indices like SPX, NDX, VIX.
|
|
79
|
+
"""
|
|
80
|
+
|
|
81
|
+
ticker: Annotated[
|
|
82
|
+
Optional[str],
|
|
83
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
84
|
+
] = None
|
|
85
|
+
r"""Single ticker symbol filter. Enter one ticker such as AAPL to narrow results to one company. In the docs playground, if you enter `ticker`, do not select `type`, because selecting `type` can clear the `ticker` field."""
|
|
86
|
+
|
|
87
|
+
tickers_any_of: Annotated[
|
|
88
|
+
Optional[str],
|
|
89
|
+
pydantic.Field(alias="tickersAnyOf"),
|
|
90
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
91
|
+
] = None
|
|
92
|
+
r"""Comma-separated list of ticker symbols (maximum 250)."""
|
|
93
|
+
|
|
94
|
+
ticker_from: Annotated[
|
|
95
|
+
Optional[str],
|
|
96
|
+
pydantic.Field(alias="tickerFrom"),
|
|
97
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
98
|
+
] = None
|
|
99
|
+
r"""Ticker lower-bound filter. Returns symbols alphabetically on or after this ticker."""
|
|
100
|
+
|
|
101
|
+
ticker_after: Annotated[
|
|
102
|
+
Optional[str],
|
|
103
|
+
pydantic.Field(alias="tickerAfter"),
|
|
104
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
105
|
+
] = None
|
|
106
|
+
r"""Ticker lower-bound filter. Returns symbols alphabetically after this ticker, excluding the ticker itself."""
|
|
107
|
+
|
|
108
|
+
ticker_to: Annotated[
|
|
109
|
+
Optional[str],
|
|
110
|
+
pydantic.Field(alias="tickerTo"),
|
|
111
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
112
|
+
] = None
|
|
113
|
+
r"""Ticker upper-bound filter. Returns symbols alphabetically on or before this ticker."""
|
|
114
|
+
|
|
115
|
+
ticker_before: Annotated[
|
|
116
|
+
Optional[str],
|
|
117
|
+
pydantic.Field(alias="tickerBefore"),
|
|
118
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
119
|
+
] = None
|
|
120
|
+
r"""Ticker upper-bound filter. Returns symbols alphabetically before this ticker, excluding the ticker itself."""
|
|
121
|
+
|
|
122
|
+
order: Annotated[
|
|
123
|
+
Optional[GetUnifiedSnapshotOrder],
|
|
124
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
125
|
+
] = GetUnifiedSnapshotOrder.ASC
|
|
126
|
+
r"""Sort order for returned records. Use asc for oldest first or desc for newest first when supported."""
|
|
127
|
+
|
|
128
|
+
limit: Annotated[
|
|
129
|
+
Optional[int],
|
|
130
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
131
|
+
] = None
|
|
132
|
+
r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits."""
|
|
133
|
+
|
|
134
|
+
sort: Annotated[
|
|
135
|
+
Optional[str],
|
|
136
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
137
|
+
] = None
|
|
138
|
+
r"""Sort field used for ordering. Massive documents this separately from `order`, so enter the provider-supported field name in the text box, for example `ticker`."""
|
|
139
|
+
|
|
140
|
+
next: Annotated[
|
|
141
|
+
Optional[str],
|
|
142
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
143
|
+
] = None
|
|
144
|
+
r"""Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page."""
|
|
145
|
+
|
|
146
|
+
@field_serializer("type")
|
|
147
|
+
def serialize_type(self, value):
|
|
148
|
+
if isinstance(value, str):
|
|
149
|
+
try:
|
|
150
|
+
return models.GetUnifiedSnapshotType(value)
|
|
151
|
+
except ValueError:
|
|
152
|
+
return value
|
|
153
|
+
return value
|
|
154
|
+
|
|
155
|
+
@field_serializer("order")
|
|
156
|
+
def serialize_order(self, value):
|
|
157
|
+
if isinstance(value, str):
|
|
158
|
+
try:
|
|
159
|
+
return models.GetUnifiedSnapshotOrder(value)
|
|
160
|
+
except ValueError:
|
|
161
|
+
return value
|
|
162
|
+
return value
|
|
163
|
+
|
|
164
|
+
@model_serializer(mode="wrap")
|
|
165
|
+
def serialize_model(self, handler):
|
|
166
|
+
optional_fields = set(
|
|
167
|
+
[
|
|
168
|
+
"type",
|
|
169
|
+
"ticker",
|
|
170
|
+
"tickersAnyOf",
|
|
171
|
+
"tickerFrom",
|
|
172
|
+
"tickerAfter",
|
|
173
|
+
"tickerTo",
|
|
174
|
+
"tickerBefore",
|
|
175
|
+
"order",
|
|
176
|
+
"limit",
|
|
177
|
+
"sort",
|
|
178
|
+
"next",
|
|
179
|
+
]
|
|
180
|
+
)
|
|
181
|
+
serialized = handler(self)
|
|
182
|
+
m = {}
|
|
183
|
+
|
|
184
|
+
for n, f in type(self).model_fields.items():
|
|
185
|
+
k = f.alias or n
|
|
186
|
+
val = serialized.get(k, serialized.get(n))
|
|
187
|
+
|
|
188
|
+
if val != UNSET_SENTINEL:
|
|
189
|
+
if val is not None or k not in optional_fields:
|
|
190
|
+
m[k] = val
|
|
191
|
+
|
|
192
|
+
return m
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
class GetUnifiedSnapshotResponseTypedDict(TypedDict):
|
|
196
|
+
http_meta: HTTPMetadataTypedDict
|
|
197
|
+
unified_snapshot_response: NotRequired[UnifiedSnapshotResponseTypedDict]
|
|
198
|
+
r"""Successful response"""
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
class GetUnifiedSnapshotResponse(BaseModel):
|
|
202
|
+
next: Callable[[], Optional[GetUnifiedSnapshotResponse]]
|
|
203
|
+
|
|
204
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
205
|
+
|
|
206
|
+
unified_snapshot_response: Optional[UnifiedSnapshotResponse] = None
|
|
207
|
+
r"""Successful response"""
|
|
208
|
+
|
|
209
|
+
@model_serializer(mode="wrap")
|
|
210
|
+
def serialize_model(self, handler):
|
|
211
|
+
optional_fields = set(["UnifiedSnapshotResponse"])
|
|
212
|
+
serialized = handler(self)
|
|
213
|
+
m = {}
|
|
214
|
+
|
|
215
|
+
for n, f in type(self).model_fields.items():
|
|
216
|
+
k = f.alias or n
|
|
217
|
+
val = serialized.get(k, serialized.get(n))
|
|
218
|
+
|
|
219
|
+
if val != UNSET_SENTINEL:
|
|
220
|
+
if val is not None or k not in optional_fields:
|
|
221
|
+
m[k] = val
|
|
222
|
+
|
|
223
|
+
return m
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: a80eeecf595b
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .upgradesdowngradesresponse import (
|
|
7
|
+
UpgradesDowngradesResponse,
|
|
8
|
+
UpgradesDowngradesResponseTypedDict,
|
|
9
|
+
)
|
|
10
|
+
from datetime import date
|
|
11
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
12
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
13
|
+
import pydantic
|
|
14
|
+
from pydantic import model_serializer
|
|
15
|
+
from typing import Optional
|
|
16
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class GetUpgradesDowngradesRequestTypedDict(TypedDict):
|
|
20
|
+
symbol: NotRequired[str]
|
|
21
|
+
r"""Stock ticker to filter by. Send the plain uppercase symbol (e.g. `AAPL`). Omit to return data across all symbols."""
|
|
22
|
+
from_: NotRequired[date]
|
|
23
|
+
r"""Start of the date window, inclusive. Format: `YYYY-MM-DD` (e.g. `2024-01-01`). Omit to read from the earliest available data."""
|
|
24
|
+
to: NotRequired[date]
|
|
25
|
+
r"""End of the date window, inclusive. Format: `YYYY-MM-DD` (e.g. `2024-12-31`). Omit to read up to today."""
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class GetUpgradesDowngradesRequest(BaseModel):
|
|
29
|
+
symbol: Annotated[
|
|
30
|
+
Optional[str],
|
|
31
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
32
|
+
] = None
|
|
33
|
+
r"""Stock ticker to filter by. Send the plain uppercase symbol (e.g. `AAPL`). Omit to return data across all symbols."""
|
|
34
|
+
|
|
35
|
+
from_: Annotated[
|
|
36
|
+
Optional[date],
|
|
37
|
+
pydantic.Field(alias="from"),
|
|
38
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
39
|
+
] = None
|
|
40
|
+
r"""Start of the date window, inclusive. Format: `YYYY-MM-DD` (e.g. `2024-01-01`). Omit to read from the earliest available data."""
|
|
41
|
+
|
|
42
|
+
to: Annotated[
|
|
43
|
+
Optional[date],
|
|
44
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
45
|
+
] = None
|
|
46
|
+
r"""End of the date window, inclusive. Format: `YYYY-MM-DD` (e.g. `2024-12-31`). Omit to read up to today."""
|
|
47
|
+
|
|
48
|
+
@model_serializer(mode="wrap")
|
|
49
|
+
def serialize_model(self, handler):
|
|
50
|
+
optional_fields = set(["symbol", "from", "to"])
|
|
51
|
+
serialized = handler(self)
|
|
52
|
+
m = {}
|
|
53
|
+
|
|
54
|
+
for n, f in type(self).model_fields.items():
|
|
55
|
+
k = f.alias or n
|
|
56
|
+
val = serialized.get(k, serialized.get(n))
|
|
57
|
+
|
|
58
|
+
if val != UNSET_SENTINEL:
|
|
59
|
+
if val is not None or k not in optional_fields:
|
|
60
|
+
m[k] = val
|
|
61
|
+
|
|
62
|
+
return m
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
class GetUpgradesDowngradesResponseTypedDict(TypedDict):
|
|
66
|
+
http_meta: HTTPMetadataTypedDict
|
|
67
|
+
upgrades_downgrades_response: NotRequired[UpgradesDowngradesResponseTypedDict]
|
|
68
|
+
r"""Analyst upgrades and downgrades."""
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
class GetUpgradesDowngradesResponse(BaseModel):
|
|
72
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
73
|
+
|
|
74
|
+
upgrades_downgrades_response: Optional[UpgradesDowngradesResponse] = None
|
|
75
|
+
r"""Analyst upgrades and downgrades."""
|
|
76
|
+
|
|
77
|
+
@model_serializer(mode="wrap")
|
|
78
|
+
def serialize_model(self, handler):
|
|
79
|
+
optional_fields = set(["UpgradesDowngradesResponse"])
|
|
80
|
+
serialized = handler(self)
|
|
81
|
+
m = {}
|
|
82
|
+
|
|
83
|
+
for n, f in type(self).model_fields.items():
|
|
84
|
+
k = f.alias or n
|
|
85
|
+
val = serialized.get(k, serialized.get(n))
|
|
86
|
+
|
|
87
|
+
if val != UNSET_SENTINEL:
|
|
88
|
+
if val is not None or k not in optional_fields:
|
|
89
|
+
m[k] = val
|
|
90
|
+
|
|
91
|
+
return m
|