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,82 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 4622e92023e1
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .stocksnapshotsresponse import (
|
|
7
|
+
StockSnapshotsResponse,
|
|
8
|
+
StockSnapshotsResponseTypedDict,
|
|
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 GetStockSnapshotsRequestTypedDict(TypedDict):
|
|
19
|
+
tickers: NotRequired[str]
|
|
20
|
+
r"""Comma-separated list of tickers, such as AAPL,MSFT. Use this to request several companies in one call."""
|
|
21
|
+
include_otc: NotRequired[bool]
|
|
22
|
+
r"""Whether to include over-the-counter securities. Use true only when your product needs OTC market coverage."""
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class GetStockSnapshotsRequest(BaseModel):
|
|
26
|
+
tickers: Annotated[
|
|
27
|
+
Optional[str],
|
|
28
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
29
|
+
] = None
|
|
30
|
+
r"""Comma-separated list of tickers, such as AAPL,MSFT. Use this to request several companies in one call."""
|
|
31
|
+
|
|
32
|
+
include_otc: Annotated[
|
|
33
|
+
Optional[bool],
|
|
34
|
+
pydantic.Field(alias="includeOtc"),
|
|
35
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
36
|
+
] = None
|
|
37
|
+
r"""Whether to include over-the-counter securities. Use true only when your product needs OTC market coverage."""
|
|
38
|
+
|
|
39
|
+
@model_serializer(mode="wrap")
|
|
40
|
+
def serialize_model(self, handler):
|
|
41
|
+
optional_fields = set(["tickers", "includeOtc"])
|
|
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
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
class GetStockSnapshotsResponseTypedDict(TypedDict):
|
|
57
|
+
http_meta: HTTPMetadataTypedDict
|
|
58
|
+
stock_snapshots_response: NotRequired[StockSnapshotsResponseTypedDict]
|
|
59
|
+
r"""Successful response"""
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
class GetStockSnapshotsResponse(BaseModel):
|
|
63
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
64
|
+
|
|
65
|
+
stock_snapshots_response: Optional[StockSnapshotsResponse] = None
|
|
66
|
+
r"""Successful response"""
|
|
67
|
+
|
|
68
|
+
@model_serializer(mode="wrap")
|
|
69
|
+
def serialize_model(self, handler):
|
|
70
|
+
optional_fields = set(["StockSnapshotsResponse"])
|
|
71
|
+
serialized = handler(self)
|
|
72
|
+
m = {}
|
|
73
|
+
|
|
74
|
+
for n, f in type(self).model_fields.items():
|
|
75
|
+
k = f.alias or n
|
|
76
|
+
val = serialized.get(k, serialized.get(n))
|
|
77
|
+
|
|
78
|
+
if val != UNSET_SENTINEL:
|
|
79
|
+
if val is not None or k not in optional_fields:
|
|
80
|
+
m[k] = val
|
|
81
|
+
|
|
82
|
+
return m
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: f5fbdb6c6f0e
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .stocksplitsresponse import StockSplitsResponse, StockSplitsResponseTypedDict
|
|
7
|
+
from datetime import date
|
|
8
|
+
from enum import Enum
|
|
9
|
+
from finance_dev import models, utils
|
|
10
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
11
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
12
|
+
import pydantic
|
|
13
|
+
from pydantic import field_serializer, model_serializer
|
|
14
|
+
from typing import Callable, Optional
|
|
15
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class GetStockSplitsAdjustmentType(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
19
|
+
r"""Exact type: forward_split, reverse_split, stock_dividend"""
|
|
20
|
+
|
|
21
|
+
FORWARD_SPLIT = "forward_split"
|
|
22
|
+
REVERSE_SPLIT = "reverse_split"
|
|
23
|
+
STOCK_DIVIDEND = "stock_dividend"
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class GetStockSplitsRequestTypedDict(TypedDict):
|
|
27
|
+
ticker: NotRequired[str]
|
|
28
|
+
r"""Single ticker symbol only, such as AAPL. Do not send a comma-separated list here; if you need multiple symbols, use `tickersAnyOf` instead."""
|
|
29
|
+
tickers_any_of: NotRequired[str]
|
|
30
|
+
r"""Comma-separated list of ticker symbols."""
|
|
31
|
+
ticker_from: NotRequired[str]
|
|
32
|
+
r"""Filter tickers >= this value (inclusive)"""
|
|
33
|
+
ticker_after: NotRequired[str]
|
|
34
|
+
r"""Filter tickers > this value (exclusive)"""
|
|
35
|
+
ticker_to: NotRequired[str]
|
|
36
|
+
r"""Filter tickers <= this value (inclusive)"""
|
|
37
|
+
ticker_before: NotRequired[str]
|
|
38
|
+
r"""Filter tickers < this value (exclusive)"""
|
|
39
|
+
execution_date: NotRequired[date]
|
|
40
|
+
r"""Exact execution date in YYYY-MM-DD format"""
|
|
41
|
+
execution_date_from: NotRequired[date]
|
|
42
|
+
r"""Filter to splits that executed on or after this date (inclusive). Format: `YYYY-MM-DD`."""
|
|
43
|
+
execution_date_after: NotRequired[date]
|
|
44
|
+
r"""Filter to splits that executed strictly after this date (exclusive). Format: `YYYY-MM-DD`."""
|
|
45
|
+
execution_date_to: NotRequired[date]
|
|
46
|
+
r"""Filter to splits that executed on or before this date (inclusive). Format: `YYYY-MM-DD`."""
|
|
47
|
+
execution_date_before: NotRequired[date]
|
|
48
|
+
r"""Filter to splits that executed strictly before this date (exclusive). Format: `YYYY-MM-DD`."""
|
|
49
|
+
adjustment_type: NotRequired[GetStockSplitsAdjustmentType]
|
|
50
|
+
r"""Exact type: forward_split, reverse_split, stock_dividend"""
|
|
51
|
+
adjustment_types: NotRequired[str]
|
|
52
|
+
r"""Comma-separated list of adjustment types"""
|
|
53
|
+
limit: NotRequired[int]
|
|
54
|
+
r"""Maximum number of results to return. Range: 1 to 5000. Use smaller values for UI pages, larger for batch exports."""
|
|
55
|
+
sort: NotRequired[str]
|
|
56
|
+
r"""A comma-separated list of sort columns. For each column, append `.asc` or `.desc` to specify direction. Defaults to `ticker.asc` when not specified. Examples: `execution_date.desc` or `ticker.asc,execution_date.desc`."""
|
|
57
|
+
next: NotRequired[str]
|
|
58
|
+
r"""Pagination cursor from previous response"""
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
class GetStockSplitsRequest(BaseModel):
|
|
62
|
+
ticker: Annotated[
|
|
63
|
+
Optional[str],
|
|
64
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
65
|
+
] = None
|
|
66
|
+
r"""Single ticker symbol only, such as AAPL. Do not send a comma-separated list here; if you need multiple symbols, use `tickersAnyOf` instead."""
|
|
67
|
+
|
|
68
|
+
tickers_any_of: Annotated[
|
|
69
|
+
Optional[str],
|
|
70
|
+
pydantic.Field(alias="tickersAnyOf"),
|
|
71
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
72
|
+
] = None
|
|
73
|
+
r"""Comma-separated list of ticker symbols."""
|
|
74
|
+
|
|
75
|
+
ticker_from: Annotated[
|
|
76
|
+
Optional[str],
|
|
77
|
+
pydantic.Field(alias="tickerFrom"),
|
|
78
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
79
|
+
] = None
|
|
80
|
+
r"""Filter tickers >= this value (inclusive)"""
|
|
81
|
+
|
|
82
|
+
ticker_after: Annotated[
|
|
83
|
+
Optional[str],
|
|
84
|
+
pydantic.Field(alias="tickerAfter"),
|
|
85
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
86
|
+
] = None
|
|
87
|
+
r"""Filter tickers > this value (exclusive)"""
|
|
88
|
+
|
|
89
|
+
ticker_to: Annotated[
|
|
90
|
+
Optional[str],
|
|
91
|
+
pydantic.Field(alias="tickerTo"),
|
|
92
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
93
|
+
] = None
|
|
94
|
+
r"""Filter tickers <= this value (inclusive)"""
|
|
95
|
+
|
|
96
|
+
ticker_before: Annotated[
|
|
97
|
+
Optional[str],
|
|
98
|
+
pydantic.Field(alias="tickerBefore"),
|
|
99
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
100
|
+
] = None
|
|
101
|
+
r"""Filter tickers < this value (exclusive)"""
|
|
102
|
+
|
|
103
|
+
execution_date: Annotated[
|
|
104
|
+
Optional[date],
|
|
105
|
+
pydantic.Field(alias="executionDate"),
|
|
106
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
107
|
+
] = None
|
|
108
|
+
r"""Exact execution date in YYYY-MM-DD format"""
|
|
109
|
+
|
|
110
|
+
execution_date_from: Annotated[
|
|
111
|
+
Optional[date],
|
|
112
|
+
pydantic.Field(alias="executionDateFrom"),
|
|
113
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
114
|
+
] = None
|
|
115
|
+
r"""Filter to splits that executed on or after this date (inclusive). Format: `YYYY-MM-DD`."""
|
|
116
|
+
|
|
117
|
+
execution_date_after: Annotated[
|
|
118
|
+
Optional[date],
|
|
119
|
+
pydantic.Field(alias="executionDateAfter"),
|
|
120
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
121
|
+
] = None
|
|
122
|
+
r"""Filter to splits that executed strictly after this date (exclusive). Format: `YYYY-MM-DD`."""
|
|
123
|
+
|
|
124
|
+
execution_date_to: Annotated[
|
|
125
|
+
Optional[date],
|
|
126
|
+
pydantic.Field(alias="executionDateTo"),
|
|
127
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
128
|
+
] = None
|
|
129
|
+
r"""Filter to splits that executed on or before this date (inclusive). Format: `YYYY-MM-DD`."""
|
|
130
|
+
|
|
131
|
+
execution_date_before: Annotated[
|
|
132
|
+
Optional[date],
|
|
133
|
+
pydantic.Field(alias="executionDateBefore"),
|
|
134
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
135
|
+
] = None
|
|
136
|
+
r"""Filter to splits that executed strictly before this date (exclusive). Format: `YYYY-MM-DD`."""
|
|
137
|
+
|
|
138
|
+
adjustment_type: Annotated[
|
|
139
|
+
Optional[GetStockSplitsAdjustmentType],
|
|
140
|
+
pydantic.Field(alias="adjustmentType"),
|
|
141
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
142
|
+
] = None
|
|
143
|
+
r"""Exact type: forward_split, reverse_split, stock_dividend"""
|
|
144
|
+
|
|
145
|
+
adjustment_types: Annotated[
|
|
146
|
+
Optional[str],
|
|
147
|
+
pydantic.Field(alias="adjustmentTypes"),
|
|
148
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
149
|
+
] = None
|
|
150
|
+
r"""Comma-separated list of adjustment types"""
|
|
151
|
+
|
|
152
|
+
limit: Annotated[
|
|
153
|
+
Optional[int],
|
|
154
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
155
|
+
] = None
|
|
156
|
+
r"""Maximum number of results to return. Range: 1 to 5000. Use smaller values for UI pages, larger for batch exports."""
|
|
157
|
+
|
|
158
|
+
sort: Annotated[
|
|
159
|
+
Optional[str],
|
|
160
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
161
|
+
] = None
|
|
162
|
+
r"""A comma-separated list of sort columns. For each column, append `.asc` or `.desc` to specify direction. Defaults to `ticker.asc` when not specified. Examples: `execution_date.desc` or `ticker.asc,execution_date.desc`."""
|
|
163
|
+
|
|
164
|
+
next: Annotated[
|
|
165
|
+
Optional[str],
|
|
166
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
167
|
+
] = None
|
|
168
|
+
r"""Pagination cursor from previous response"""
|
|
169
|
+
|
|
170
|
+
@field_serializer("adjustment_type")
|
|
171
|
+
def serialize_adjustment_type(self, value):
|
|
172
|
+
if isinstance(value, str):
|
|
173
|
+
try:
|
|
174
|
+
return models.GetStockSplitsAdjustmentType(value)
|
|
175
|
+
except ValueError:
|
|
176
|
+
return value
|
|
177
|
+
return value
|
|
178
|
+
|
|
179
|
+
@model_serializer(mode="wrap")
|
|
180
|
+
def serialize_model(self, handler):
|
|
181
|
+
optional_fields = set(
|
|
182
|
+
[
|
|
183
|
+
"ticker",
|
|
184
|
+
"tickersAnyOf",
|
|
185
|
+
"tickerFrom",
|
|
186
|
+
"tickerAfter",
|
|
187
|
+
"tickerTo",
|
|
188
|
+
"tickerBefore",
|
|
189
|
+
"executionDate",
|
|
190
|
+
"executionDateFrom",
|
|
191
|
+
"executionDateAfter",
|
|
192
|
+
"executionDateTo",
|
|
193
|
+
"executionDateBefore",
|
|
194
|
+
"adjustmentType",
|
|
195
|
+
"adjustmentTypes",
|
|
196
|
+
"limit",
|
|
197
|
+
"sort",
|
|
198
|
+
"next",
|
|
199
|
+
]
|
|
200
|
+
)
|
|
201
|
+
serialized = handler(self)
|
|
202
|
+
m = {}
|
|
203
|
+
|
|
204
|
+
for n, f in type(self).model_fields.items():
|
|
205
|
+
k = f.alias or n
|
|
206
|
+
val = serialized.get(k, serialized.get(n))
|
|
207
|
+
|
|
208
|
+
if val != UNSET_SENTINEL:
|
|
209
|
+
if val is not None or k not in optional_fields:
|
|
210
|
+
m[k] = val
|
|
211
|
+
|
|
212
|
+
return m
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
class GetStockSplitsResponseTypedDict(TypedDict):
|
|
216
|
+
http_meta: HTTPMetadataTypedDict
|
|
217
|
+
stock_splits_response: NotRequired[StockSplitsResponseTypedDict]
|
|
218
|
+
r"""Successful response"""
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
class GetStockSplitsResponse(BaseModel):
|
|
222
|
+
next: Callable[[], Optional[GetStockSplitsResponse]]
|
|
223
|
+
|
|
224
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
225
|
+
|
|
226
|
+
stock_splits_response: Optional[StockSplitsResponse] = None
|
|
227
|
+
r"""Successful response"""
|
|
228
|
+
|
|
229
|
+
@model_serializer(mode="wrap")
|
|
230
|
+
def serialize_model(self, handler):
|
|
231
|
+
optional_fields = set(["StockSplitsResponse"])
|
|
232
|
+
serialized = handler(self)
|
|
233
|
+
m = {}
|
|
234
|
+
|
|
235
|
+
for n, f in type(self).model_fields.items():
|
|
236
|
+
k = f.alias or n
|
|
237
|
+
val = serialized.get(k, serialized.get(n))
|
|
238
|
+
|
|
239
|
+
if val != UNSET_SENTINEL:
|
|
240
|
+
if val is not None or k not in optional_fields:
|
|
241
|
+
m[k] = val
|
|
242
|
+
|
|
243
|
+
return m
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 7f4b9336fedd
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .stocktradesresponse import StockTradesResponse, StockTradesResponseTypedDict
|
|
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 GetStockTradesOrder(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 GetStockTradesRequestTypedDict(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[GetStockTradesOrder]
|
|
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 GetStockTradesRequest(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[GetStockTradesOrder],
|
|
89
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
90
|
+
] = GetStockTradesOrder.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.GetStockTradesOrder(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 GetStockTradesResponseTypedDict(TypedDict):
|
|
150
|
+
http_meta: HTTPMetadataTypedDict
|
|
151
|
+
stock_trades_response: NotRequired[StockTradesResponseTypedDict]
|
|
152
|
+
r"""Successful response"""
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
class GetStockTradesResponse(BaseModel):
|
|
156
|
+
next: Callable[[], Optional[GetStockTradesResponse]]
|
|
157
|
+
|
|
158
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
159
|
+
|
|
160
|
+
stock_trades_response: Optional[StockTradesResponse] = None
|
|
161
|
+
r"""Successful response"""
|
|
162
|
+
|
|
163
|
+
@model_serializer(mode="wrap")
|
|
164
|
+
def serialize_model(self, handler):
|
|
165
|
+
optional_fields = set(["StockTradesResponse"])
|
|
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
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 605c8d9e80dd
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .supplychainresponse import SupplyChainResponse, SupplyChainResponseTypedDict
|
|
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 GetSupplyChainRequestTypedDict(TypedDict):
|
|
16
|
+
symbol: str
|
|
17
|
+
r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`."""
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetSupplyChainRequest(BaseModel):
|
|
21
|
+
symbol: Annotated[
|
|
22
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
23
|
+
]
|
|
24
|
+
r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`."""
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class GetSupplyChainResponseTypedDict(TypedDict):
|
|
28
|
+
http_meta: HTTPMetadataTypedDict
|
|
29
|
+
supply_chain_response: NotRequired[SupplyChainResponseTypedDict]
|
|
30
|
+
r"""Supply chain data."""
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class GetSupplyChainResponse(BaseModel):
|
|
34
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
35
|
+
|
|
36
|
+
supply_chain_response: Optional[SupplyChainResponse] = None
|
|
37
|
+
r"""Supply chain data."""
|
|
38
|
+
|
|
39
|
+
@model_serializer(mode="wrap")
|
|
40
|
+
def serialize_model(self, handler):
|
|
41
|
+
optional_fields = set(["SupplyChainResponse"])
|
|
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,90 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: a985700ee8b1
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .supportresistancelevelsresponse import (
|
|
7
|
+
SupportResistanceLevelsResponse,
|
|
8
|
+
SupportResistanceLevelsResponseTypedDict,
|
|
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 GetSupportResistanceLevelsResolution(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
21
|
+
r"""How long each bar covers. Supported values are minutes (`1`, `5`, `15`, `30`, `60`) or daily/weekly/monthly (`D`, `W`, `M`). Other values return 400 Bad Request with error code `VALIDATION_ERROR`."""
|
|
22
|
+
|
|
23
|
+
ONE = "1"
|
|
24
|
+
FIVE = "5"
|
|
25
|
+
FIFTEEN = "15"
|
|
26
|
+
THIRTY = "30"
|
|
27
|
+
SIXTY = "60"
|
|
28
|
+
D = "D"
|
|
29
|
+
W = "W"
|
|
30
|
+
M = "M"
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class GetSupportResistanceLevelsRequestTypedDict(TypedDict):
|
|
34
|
+
symbol: str
|
|
35
|
+
r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`, `TSLA`."""
|
|
36
|
+
resolution: GetSupportResistanceLevelsResolution
|
|
37
|
+
r"""How long each bar covers. Supported values are minutes (`1`, `5`, `15`, `30`, `60`) or daily/weekly/monthly (`D`, `W`, `M`). Other values return 400 Bad Request with error code `VALIDATION_ERROR`."""
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class GetSupportResistanceLevelsRequest(BaseModel):
|
|
41
|
+
symbol: Annotated[
|
|
42
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
43
|
+
]
|
|
44
|
+
r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`, `TSLA`."""
|
|
45
|
+
|
|
46
|
+
resolution: Annotated[
|
|
47
|
+
GetSupportResistanceLevelsResolution,
|
|
48
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
49
|
+
]
|
|
50
|
+
r"""How long each bar covers. Supported values are minutes (`1`, `5`, `15`, `30`, `60`) or daily/weekly/monthly (`D`, `W`, `M`). Other values return 400 Bad Request with error code `VALIDATION_ERROR`."""
|
|
51
|
+
|
|
52
|
+
@field_serializer("resolution")
|
|
53
|
+
def serialize_resolution(self, value):
|
|
54
|
+
if isinstance(value, str):
|
|
55
|
+
try:
|
|
56
|
+
return models.GetSupportResistanceLevelsResolution(value)
|
|
57
|
+
except ValueError:
|
|
58
|
+
return value
|
|
59
|
+
return value
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
class GetSupportResistanceLevelsResponseTypedDict(TypedDict):
|
|
63
|
+
http_meta: HTTPMetadataTypedDict
|
|
64
|
+
support_resistance_levels_response: NotRequired[
|
|
65
|
+
SupportResistanceLevelsResponseTypedDict
|
|
66
|
+
]
|
|
67
|
+
r"""Successful response"""
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
class GetSupportResistanceLevelsResponse(BaseModel):
|
|
71
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
72
|
+
|
|
73
|
+
support_resistance_levels_response: Optional[SupportResistanceLevelsResponse] = None
|
|
74
|
+
r"""Successful response"""
|
|
75
|
+
|
|
76
|
+
@model_serializer(mode="wrap")
|
|
77
|
+
def serialize_model(self, handler):
|
|
78
|
+
optional_fields = set(["SupportResistanceLevelsResponse"])
|
|
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
|