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,174 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 51a6a3cada37
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .stockaggregatesresponse import (
|
|
7
|
+
StockAggregatesResponse,
|
|
8
|
+
StockAggregatesResponseTypedDict,
|
|
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 Optional
|
|
17
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class Timespan(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
21
|
+
r"""Time span unit for each aggregate bar, such as minute, hour, day, week, month, quarter, or year when supported."""
|
|
22
|
+
|
|
23
|
+
SECOND = "second"
|
|
24
|
+
MINUTE = "minute"
|
|
25
|
+
HOUR = "hour"
|
|
26
|
+
DAY = "day"
|
|
27
|
+
WEEK = "week"
|
|
28
|
+
MONTH = "month"
|
|
29
|
+
QUARTER = "quarter"
|
|
30
|
+
YEAR = "year"
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class Sort(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
34
|
+
r"""Sort direction for aggregate bars. Use `asc` for oldest first or `desc` for newest first."""
|
|
35
|
+
|
|
36
|
+
ASC = "asc"
|
|
37
|
+
DESC = "desc"
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class GetStockAggregatesRequestTypedDict(TypedDict):
|
|
41
|
+
ticker: str
|
|
42
|
+
r"""Stock ticker symbol, such as AAPL. Use the exact ticker for the company you want to research."""
|
|
43
|
+
multiplier: int
|
|
44
|
+
r"""Size of each aggregate time window. Enter 1 or greater, such as 1 day or 5 minutes depending on `timespan`."""
|
|
45
|
+
timespan: Timespan
|
|
46
|
+
r"""Time span unit for each aggregate bar, such as minute, hour, day, week, month, quarter, or year when supported."""
|
|
47
|
+
from_: str
|
|
48
|
+
r"""Start date in YYYY-MM-DD format. Enter the first date to include in the research window. or timestamp"""
|
|
49
|
+
to: str
|
|
50
|
+
r"""End date in YYYY-MM-DD format. Enter the last date to include in the research window. or timestamp"""
|
|
51
|
+
adjusted: NotRequired[bool]
|
|
52
|
+
r"""Whether to adjust historical prices for stock splits. Use true for normalized charting and false for raw market data."""
|
|
53
|
+
sort: NotRequired[Sort]
|
|
54
|
+
r"""Sort direction for aggregate bars. Use `asc` for oldest first or `desc` for newest first."""
|
|
55
|
+
limit: NotRequired[int]
|
|
56
|
+
r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits."""
|
|
57
|
+
next: NotRequired[str]
|
|
58
|
+
r"""Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page."""
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
class GetStockAggregatesRequest(BaseModel):
|
|
62
|
+
ticker: Annotated[
|
|
63
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
64
|
+
]
|
|
65
|
+
r"""Stock ticker symbol, such as AAPL. Use the exact ticker for the company you want to research."""
|
|
66
|
+
|
|
67
|
+
multiplier: Annotated[
|
|
68
|
+
int, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
69
|
+
]
|
|
70
|
+
r"""Size of each aggregate time window. Enter 1 or greater, such as 1 day or 5 minutes depending on `timespan`."""
|
|
71
|
+
|
|
72
|
+
timespan: Annotated[
|
|
73
|
+
Timespan, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
74
|
+
]
|
|
75
|
+
r"""Time span unit for each aggregate bar, such as minute, hour, day, week, month, quarter, or year when supported."""
|
|
76
|
+
|
|
77
|
+
from_: Annotated[
|
|
78
|
+
str,
|
|
79
|
+
pydantic.Field(alias="from"),
|
|
80
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
81
|
+
]
|
|
82
|
+
r"""Start date in YYYY-MM-DD format. Enter the first date to include in the research window. or timestamp"""
|
|
83
|
+
|
|
84
|
+
to: Annotated[
|
|
85
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
86
|
+
]
|
|
87
|
+
r"""End date in YYYY-MM-DD format. Enter the last date to include in the research window. or timestamp"""
|
|
88
|
+
|
|
89
|
+
adjusted: Annotated[
|
|
90
|
+
Optional[bool],
|
|
91
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
92
|
+
] = None
|
|
93
|
+
r"""Whether to adjust historical prices for stock splits. Use true for normalized charting and false for raw market data."""
|
|
94
|
+
|
|
95
|
+
sort: Annotated[
|
|
96
|
+
Optional[Sort],
|
|
97
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
98
|
+
] = None
|
|
99
|
+
r"""Sort direction for aggregate bars. Use `asc` for oldest first or `desc` for newest first."""
|
|
100
|
+
|
|
101
|
+
limit: Annotated[
|
|
102
|
+
Optional[int],
|
|
103
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
104
|
+
] = None
|
|
105
|
+
r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits."""
|
|
106
|
+
|
|
107
|
+
next: Annotated[
|
|
108
|
+
Optional[str],
|
|
109
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
110
|
+
] = None
|
|
111
|
+
r"""Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page."""
|
|
112
|
+
|
|
113
|
+
@field_serializer("timespan")
|
|
114
|
+
def serialize_timespan(self, value):
|
|
115
|
+
if isinstance(value, str):
|
|
116
|
+
try:
|
|
117
|
+
return models.Timespan(value)
|
|
118
|
+
except ValueError:
|
|
119
|
+
return value
|
|
120
|
+
return value
|
|
121
|
+
|
|
122
|
+
@field_serializer("sort")
|
|
123
|
+
def serialize_sort(self, value):
|
|
124
|
+
if isinstance(value, str):
|
|
125
|
+
try:
|
|
126
|
+
return models.Sort(value)
|
|
127
|
+
except ValueError:
|
|
128
|
+
return value
|
|
129
|
+
return value
|
|
130
|
+
|
|
131
|
+
@model_serializer(mode="wrap")
|
|
132
|
+
def serialize_model(self, handler):
|
|
133
|
+
optional_fields = set(["adjusted", "sort", "limit", "next"])
|
|
134
|
+
serialized = handler(self)
|
|
135
|
+
m = {}
|
|
136
|
+
|
|
137
|
+
for n, f in type(self).model_fields.items():
|
|
138
|
+
k = f.alias or n
|
|
139
|
+
val = serialized.get(k, serialized.get(n))
|
|
140
|
+
|
|
141
|
+
if val != UNSET_SENTINEL:
|
|
142
|
+
if val is not None or k not in optional_fields:
|
|
143
|
+
m[k] = val
|
|
144
|
+
|
|
145
|
+
return m
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
class GetStockAggregatesResponseTypedDict(TypedDict):
|
|
149
|
+
http_meta: HTTPMetadataTypedDict
|
|
150
|
+
stock_aggregates_response: NotRequired[StockAggregatesResponseTypedDict]
|
|
151
|
+
r"""Successful response"""
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
class GetStockAggregatesResponse(BaseModel):
|
|
155
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
156
|
+
|
|
157
|
+
stock_aggregates_response: Optional[StockAggregatesResponse] = None
|
|
158
|
+
r"""Successful response"""
|
|
159
|
+
|
|
160
|
+
@model_serializer(mode="wrap")
|
|
161
|
+
def serialize_model(self, handler):
|
|
162
|
+
optional_fields = set(["StockAggregatesResponse"])
|
|
163
|
+
serialized = handler(self)
|
|
164
|
+
m = {}
|
|
165
|
+
|
|
166
|
+
for n, f in type(self).model_fields.items():
|
|
167
|
+
k = f.alias or n
|
|
168
|
+
val = serialized.get(k, serialized.get(n))
|
|
169
|
+
|
|
170
|
+
if val != UNSET_SENTINEL:
|
|
171
|
+
if val is not None or k not in optional_fields:
|
|
172
|
+
m[k] = val
|
|
173
|
+
|
|
174
|
+
return m
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: d9fb06474a64
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .stocklastquoteresponse import (
|
|
7
|
+
StockLastQuoteResponse,
|
|
8
|
+
StockLastQuoteResponseTypedDict,
|
|
9
|
+
)
|
|
10
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
11
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
12
|
+
import pydantic
|
|
13
|
+
from pydantic import model_serializer
|
|
14
|
+
from typing import Optional
|
|
15
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class GetStockLastQuoteRequestTypedDict(TypedDict):
|
|
19
|
+
ticker: str
|
|
20
|
+
r"""Stock ticker symbol, such as AAPL. Use the exact ticker for the company you want to research."""
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class GetStockLastQuoteRequest(BaseModel):
|
|
24
|
+
ticker: Annotated[
|
|
25
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
26
|
+
]
|
|
27
|
+
r"""Stock ticker symbol, such as AAPL. Use the exact ticker for the company you want to research."""
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class GetStockLastQuoteResponseTypedDict(TypedDict):
|
|
31
|
+
http_meta: HTTPMetadataTypedDict
|
|
32
|
+
stock_last_quote_response: NotRequired[StockLastQuoteResponseTypedDict]
|
|
33
|
+
r"""Successful response"""
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class GetStockLastQuoteResponse(BaseModel):
|
|
37
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
38
|
+
|
|
39
|
+
stock_last_quote_response: Optional[StockLastQuoteResponse] = None
|
|
40
|
+
r"""Successful response"""
|
|
41
|
+
|
|
42
|
+
@model_serializer(mode="wrap")
|
|
43
|
+
def serialize_model(self, handler):
|
|
44
|
+
optional_fields = set(["StockLastQuoteResponse"])
|
|
45
|
+
serialized = handler(self)
|
|
46
|
+
m = {}
|
|
47
|
+
|
|
48
|
+
for n, f in type(self).model_fields.items():
|
|
49
|
+
k = f.alias or n
|
|
50
|
+
val = serialized.get(k, serialized.get(n))
|
|
51
|
+
|
|
52
|
+
if val != UNSET_SENTINEL:
|
|
53
|
+
if val is not None or k not in optional_fields:
|
|
54
|
+
m[k] = val
|
|
55
|
+
|
|
56
|
+
return m
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: fd851d7e1c2d
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .stocklasttraderesponse import (
|
|
7
|
+
StockLastTradeResponse,
|
|
8
|
+
StockLastTradeResponseTypedDict,
|
|
9
|
+
)
|
|
10
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
11
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
12
|
+
import pydantic
|
|
13
|
+
from pydantic import model_serializer
|
|
14
|
+
from typing import Optional
|
|
15
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class GetStockLastTradeRequestTypedDict(TypedDict):
|
|
19
|
+
ticker: str
|
|
20
|
+
r"""Stock ticker symbol, such as AAPL. Use the exact ticker for the company you want to research."""
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class GetStockLastTradeRequest(BaseModel):
|
|
24
|
+
ticker: Annotated[
|
|
25
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
26
|
+
]
|
|
27
|
+
r"""Stock ticker symbol, such as AAPL. Use the exact ticker for the company you want to research."""
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class GetStockLastTradeResponseTypedDict(TypedDict):
|
|
31
|
+
http_meta: HTTPMetadataTypedDict
|
|
32
|
+
stock_last_trade_response: NotRequired[StockLastTradeResponseTypedDict]
|
|
33
|
+
r"""Successful response"""
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class GetStockLastTradeResponse(BaseModel):
|
|
37
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
38
|
+
|
|
39
|
+
stock_last_trade_response: Optional[StockLastTradeResponse] = None
|
|
40
|
+
r"""Successful response"""
|
|
41
|
+
|
|
42
|
+
@model_serializer(mode="wrap")
|
|
43
|
+
def serialize_model(self, handler):
|
|
44
|
+
optional_fields = set(["StockLastTradeResponse"])
|
|
45
|
+
serialized = handler(self)
|
|
46
|
+
m = {}
|
|
47
|
+
|
|
48
|
+
for n, f in type(self).model_fields.items():
|
|
49
|
+
k = f.alias or n
|
|
50
|
+
val = serialized.get(k, serialized.get(n))
|
|
51
|
+
|
|
52
|
+
if val != UNSET_SENTINEL:
|
|
53
|
+
if val is not None or k not in optional_fields:
|
|
54
|
+
m[k] = val
|
|
55
|
+
|
|
56
|
+
return m
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 46264f35cf81
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .stockopencloseresponse import (
|
|
7
|
+
StockOpenCloseResponse,
|
|
8
|
+
StockOpenCloseResponseTypedDict,
|
|
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 GetStockOpenCloseRequestTypedDict(TypedDict):
|
|
20
|
+
ticker: str
|
|
21
|
+
r"""Stock ticker symbol, such as AAPL. Use the exact ticker for the company you want to research."""
|
|
22
|
+
date_: date
|
|
23
|
+
r"""Date in YYYY-MM-DD format. Enter the specific calendar date you want to query."""
|
|
24
|
+
adjusted: NotRequired[bool]
|
|
25
|
+
r"""Whether to adjust historical prices for stock splits. Use true for normalized charting and false for raw market data."""
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class GetStockOpenCloseRequest(BaseModel):
|
|
29
|
+
ticker: Annotated[
|
|
30
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
31
|
+
]
|
|
32
|
+
r"""Stock ticker symbol, such as AAPL. Use the exact ticker for the company you want to research."""
|
|
33
|
+
|
|
34
|
+
date_: Annotated[
|
|
35
|
+
date,
|
|
36
|
+
pydantic.Field(alias="date"),
|
|
37
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
38
|
+
]
|
|
39
|
+
r"""Date in YYYY-MM-DD format. Enter the specific calendar date you want to query."""
|
|
40
|
+
|
|
41
|
+
adjusted: Annotated[
|
|
42
|
+
Optional[bool],
|
|
43
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
44
|
+
] = None
|
|
45
|
+
r"""Whether to adjust historical prices for stock splits. Use true for normalized charting and false for raw market data."""
|
|
46
|
+
|
|
47
|
+
@model_serializer(mode="wrap")
|
|
48
|
+
def serialize_model(self, handler):
|
|
49
|
+
optional_fields = set(["adjusted"])
|
|
50
|
+
serialized = handler(self)
|
|
51
|
+
m = {}
|
|
52
|
+
|
|
53
|
+
for n, f in type(self).model_fields.items():
|
|
54
|
+
k = f.alias or n
|
|
55
|
+
val = serialized.get(k, serialized.get(n))
|
|
56
|
+
|
|
57
|
+
if val != UNSET_SENTINEL:
|
|
58
|
+
if val is not None or k not in optional_fields:
|
|
59
|
+
m[k] = val
|
|
60
|
+
|
|
61
|
+
return m
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
class GetStockOpenCloseResponseTypedDict(TypedDict):
|
|
65
|
+
http_meta: HTTPMetadataTypedDict
|
|
66
|
+
stock_open_close_response: NotRequired[StockOpenCloseResponseTypedDict]
|
|
67
|
+
r"""Successful response"""
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
class GetStockOpenCloseResponse(BaseModel):
|
|
71
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
72
|
+
|
|
73
|
+
stock_open_close_response: Optional[StockOpenCloseResponse] = None
|
|
74
|
+
r"""Successful response"""
|
|
75
|
+
|
|
76
|
+
@model_serializer(mode="wrap")
|
|
77
|
+
def serialize_model(self, handler):
|
|
78
|
+
optional_fields = set(["StockOpenCloseResponse"])
|
|
79
|
+
serialized = handler(self)
|
|
80
|
+
m = {}
|
|
81
|
+
|
|
82
|
+
for n, f in type(self).model_fields.items():
|
|
83
|
+
k = f.alias or n
|
|
84
|
+
val = serialized.get(k, serialized.get(n))
|
|
85
|
+
|
|
86
|
+
if val != UNSET_SENTINEL:
|
|
87
|
+
if val is not None or k not in optional_fields:
|
|
88
|
+
m[k] = val
|
|
89
|
+
|
|
90
|
+
return m
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: b9a2bb736665
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .stockpreviousdayresponse import (
|
|
7
|
+
StockPreviousDayResponse,
|
|
8
|
+
StockPreviousDayResponseTypedDict,
|
|
9
|
+
)
|
|
10
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
11
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
12
|
+
import pydantic
|
|
13
|
+
from pydantic import model_serializer
|
|
14
|
+
from typing import Optional
|
|
15
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class GetStockPreviousDayRequestTypedDict(TypedDict):
|
|
19
|
+
ticker: str
|
|
20
|
+
r"""Stock ticker symbol, such as AAPL. Use the exact ticker for the company you want to research."""
|
|
21
|
+
adjusted: NotRequired[bool]
|
|
22
|
+
r"""Whether to adjust historical prices for stock splits. Use true for normalized charting and false for raw market data."""
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class GetStockPreviousDayRequest(BaseModel):
|
|
26
|
+
ticker: Annotated[
|
|
27
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
28
|
+
]
|
|
29
|
+
r"""Stock ticker symbol, such as AAPL. Use the exact ticker for the company you want to research."""
|
|
30
|
+
|
|
31
|
+
adjusted: Annotated[
|
|
32
|
+
Optional[bool],
|
|
33
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
34
|
+
] = None
|
|
35
|
+
r"""Whether to adjust historical prices for stock splits. Use true for normalized charting and false for raw market data."""
|
|
36
|
+
|
|
37
|
+
@model_serializer(mode="wrap")
|
|
38
|
+
def serialize_model(self, handler):
|
|
39
|
+
optional_fields = set(["adjusted"])
|
|
40
|
+
serialized = handler(self)
|
|
41
|
+
m = {}
|
|
42
|
+
|
|
43
|
+
for n, f in type(self).model_fields.items():
|
|
44
|
+
k = f.alias or n
|
|
45
|
+
val = serialized.get(k, serialized.get(n))
|
|
46
|
+
|
|
47
|
+
if val != UNSET_SENTINEL:
|
|
48
|
+
if val is not None or k not in optional_fields:
|
|
49
|
+
m[k] = val
|
|
50
|
+
|
|
51
|
+
return m
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
class GetStockPreviousDayResponseTypedDict(TypedDict):
|
|
55
|
+
http_meta: HTTPMetadataTypedDict
|
|
56
|
+
stock_previous_day_response: NotRequired[StockPreviousDayResponseTypedDict]
|
|
57
|
+
r"""Successful response"""
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
class GetStockPreviousDayResponse(BaseModel):
|
|
61
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
62
|
+
|
|
63
|
+
stock_previous_day_response: Optional[StockPreviousDayResponse] = None
|
|
64
|
+
r"""Successful response"""
|
|
65
|
+
|
|
66
|
+
@model_serializer(mode="wrap")
|
|
67
|
+
def serialize_model(self, handler):
|
|
68
|
+
optional_fields = set(["StockPreviousDayResponse"])
|
|
69
|
+
serialized = handler(self)
|
|
70
|
+
m = {}
|
|
71
|
+
|
|
72
|
+
for n, f in type(self).model_fields.items():
|
|
73
|
+
k = f.alias or n
|
|
74
|
+
val = serialized.get(k, serialized.get(n))
|
|
75
|
+
|
|
76
|
+
if val != UNSET_SENTINEL:
|
|
77
|
+
if val is not None or k not in optional_fields:
|
|
78
|
+
m[k] = val
|
|
79
|
+
|
|
80
|
+
return m
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 12374d588539
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .stockquotesresponse import StockQuotesResponse, StockQuotesResponseTypedDict
|
|
7
|
+
from enum import Enum
|
|
8
|
+
from finance_dev import models, utils
|
|
9
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
10
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
11
|
+
import pydantic
|
|
12
|
+
from pydantic import field_serializer, model_serializer
|
|
13
|
+
from typing import Callable, Optional
|
|
14
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class GetStockQuotesOrder(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
18
|
+
r"""Sort order for returned records. Use asc for oldest first or desc for newest first when supported."""
|
|
19
|
+
|
|
20
|
+
ASC = "asc"
|
|
21
|
+
DESC = "desc"
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class GetStockQuotesRequestTypedDict(TypedDict):
|
|
25
|
+
ticker: str
|
|
26
|
+
r"""Stock ticker symbol, such as AAPL. Use the exact ticker for the company you want to research."""
|
|
27
|
+
timestamp: NotRequired[str]
|
|
28
|
+
r"""Query by timestamp (YYYY-MM-DD or nanoseconds)"""
|
|
29
|
+
timestamp_from: NotRequired[str]
|
|
30
|
+
r"""Timestamp start filter. Returns records at or after this timestamp."""
|
|
31
|
+
timestamp_after: NotRequired[str]
|
|
32
|
+
r"""Timestamp lower-bound filter. Returns records after this timestamp, excluding the timestamp itself."""
|
|
33
|
+
timestamp_to: NotRequired[str]
|
|
34
|
+
r"""Timestamp end filter. Returns records at or before this timestamp."""
|
|
35
|
+
timestamp_before: NotRequired[str]
|
|
36
|
+
r"""Timestamp upper-bound filter. Returns records before this timestamp, excluding the timestamp itself."""
|
|
37
|
+
order: NotRequired[GetStockQuotesOrder]
|
|
38
|
+
r"""Sort order for returned records. Use asc for oldest first or desc for newest first when supported."""
|
|
39
|
+
limit: NotRequired[int]
|
|
40
|
+
r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits."""
|
|
41
|
+
sort: NotRequired[str]
|
|
42
|
+
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 `timestamp`."""
|
|
43
|
+
next: NotRequired[str]
|
|
44
|
+
r"""Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page."""
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
class GetStockQuotesRequest(BaseModel):
|
|
48
|
+
ticker: Annotated[
|
|
49
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
50
|
+
]
|
|
51
|
+
r"""Stock ticker symbol, such as AAPL. Use the exact ticker for the company you want to research."""
|
|
52
|
+
|
|
53
|
+
timestamp: Annotated[
|
|
54
|
+
Optional[str],
|
|
55
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
56
|
+
] = None
|
|
57
|
+
r"""Query by timestamp (YYYY-MM-DD or nanoseconds)"""
|
|
58
|
+
|
|
59
|
+
timestamp_from: Annotated[
|
|
60
|
+
Optional[str],
|
|
61
|
+
pydantic.Field(alias="timestampFrom"),
|
|
62
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
63
|
+
] = None
|
|
64
|
+
r"""Timestamp start filter. Returns records at or after this timestamp."""
|
|
65
|
+
|
|
66
|
+
timestamp_after: Annotated[
|
|
67
|
+
Optional[str],
|
|
68
|
+
pydantic.Field(alias="timestampAfter"),
|
|
69
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
70
|
+
] = None
|
|
71
|
+
r"""Timestamp lower-bound filter. Returns records after this timestamp, excluding the timestamp itself."""
|
|
72
|
+
|
|
73
|
+
timestamp_to: Annotated[
|
|
74
|
+
Optional[str],
|
|
75
|
+
pydantic.Field(alias="timestampTo"),
|
|
76
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
77
|
+
] = None
|
|
78
|
+
r"""Timestamp end filter. Returns records at or before this timestamp."""
|
|
79
|
+
|
|
80
|
+
timestamp_before: Annotated[
|
|
81
|
+
Optional[str],
|
|
82
|
+
pydantic.Field(alias="timestampBefore"),
|
|
83
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
84
|
+
] = None
|
|
85
|
+
r"""Timestamp upper-bound filter. Returns records before this timestamp, excluding the timestamp itself."""
|
|
86
|
+
|
|
87
|
+
order: Annotated[
|
|
88
|
+
Optional[GetStockQuotesOrder],
|
|
89
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
90
|
+
] = GetStockQuotesOrder.DESC
|
|
91
|
+
r"""Sort order for returned records. Use asc for oldest first or desc for newest first when supported."""
|
|
92
|
+
|
|
93
|
+
limit: Annotated[
|
|
94
|
+
Optional[int],
|
|
95
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
96
|
+
] = None
|
|
97
|
+
r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits."""
|
|
98
|
+
|
|
99
|
+
sort: Annotated[
|
|
100
|
+
Optional[str],
|
|
101
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
102
|
+
] = None
|
|
103
|
+
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 `timestamp`."""
|
|
104
|
+
|
|
105
|
+
next: Annotated[
|
|
106
|
+
Optional[str],
|
|
107
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
108
|
+
] = None
|
|
109
|
+
r"""Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page."""
|
|
110
|
+
|
|
111
|
+
@field_serializer("order")
|
|
112
|
+
def serialize_order(self, value):
|
|
113
|
+
if isinstance(value, str):
|
|
114
|
+
try:
|
|
115
|
+
return models.GetStockQuotesOrder(value)
|
|
116
|
+
except ValueError:
|
|
117
|
+
return value
|
|
118
|
+
return value
|
|
119
|
+
|
|
120
|
+
@model_serializer(mode="wrap")
|
|
121
|
+
def serialize_model(self, handler):
|
|
122
|
+
optional_fields = set(
|
|
123
|
+
[
|
|
124
|
+
"timestamp",
|
|
125
|
+
"timestampFrom",
|
|
126
|
+
"timestampAfter",
|
|
127
|
+
"timestampTo",
|
|
128
|
+
"timestampBefore",
|
|
129
|
+
"order",
|
|
130
|
+
"limit",
|
|
131
|
+
"sort",
|
|
132
|
+
"next",
|
|
133
|
+
]
|
|
134
|
+
)
|
|
135
|
+
serialized = handler(self)
|
|
136
|
+
m = {}
|
|
137
|
+
|
|
138
|
+
for n, f in type(self).model_fields.items():
|
|
139
|
+
k = f.alias or n
|
|
140
|
+
val = serialized.get(k, serialized.get(n))
|
|
141
|
+
|
|
142
|
+
if val != UNSET_SENTINEL:
|
|
143
|
+
if val is not None or k not in optional_fields:
|
|
144
|
+
m[k] = val
|
|
145
|
+
|
|
146
|
+
return m
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
class GetStockQuotesResponseTypedDict(TypedDict):
|
|
150
|
+
http_meta: HTTPMetadataTypedDict
|
|
151
|
+
stock_quotes_response: NotRequired[StockQuotesResponseTypedDict]
|
|
152
|
+
r"""Successful response"""
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
class GetStockQuotesResponse(BaseModel):
|
|
156
|
+
next: Callable[[], Optional[GetStockQuotesResponse]]
|
|
157
|
+
|
|
158
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
159
|
+
|
|
160
|
+
stock_quotes_response: Optional[StockQuotesResponse] = None
|
|
161
|
+
r"""Successful response"""
|
|
162
|
+
|
|
163
|
+
@model_serializer(mode="wrap")
|
|
164
|
+
def serialize_model(self, handler):
|
|
165
|
+
optional_fields = set(["StockQuotesResponse"])
|
|
166
|
+
serialized = handler(self)
|
|
167
|
+
m = {}
|
|
168
|
+
|
|
169
|
+
for n, f in type(self).model_fields.items():
|
|
170
|
+
k = f.alias or n
|
|
171
|
+
val = serialized.get(k, serialized.get(n))
|
|
172
|
+
|
|
173
|
+
if val != UNSET_SENTINEL:
|
|
174
|
+
if val is not None or k not in optional_fields:
|
|
175
|
+
m[k] = val
|
|
176
|
+
|
|
177
|
+
return m
|