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,53 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 5073b17c4720
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .symbolinfo import SymbolInfo, SymbolInfoTypedDict
|
|
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 GetSymbolInfoRequestTypedDict(TypedDict):
|
|
16
|
+
symbol: str
|
|
17
|
+
r"""Symbol to resolve for charting. Use equities like `AAPL` or futures with a leading slash such as `/ES`. Prefer values returned by chart search."""
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetSymbolInfoRequest(BaseModel):
|
|
21
|
+
symbol: Annotated[
|
|
22
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
23
|
+
]
|
|
24
|
+
r"""Symbol to resolve for charting. Use equities like `AAPL` or futures with a leading slash such as `/ES`. Prefer values returned by chart search."""
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class GetSymbolInfoResponseTypedDict(TypedDict):
|
|
28
|
+
http_meta: HTTPMetadataTypedDict
|
|
29
|
+
symbol_info: NotRequired[SymbolInfoTypedDict]
|
|
30
|
+
r"""Symbol information retrieved successfully"""
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class GetSymbolInfoResponse(BaseModel):
|
|
34
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
35
|
+
|
|
36
|
+
symbol_info: Optional[SymbolInfo] = None
|
|
37
|
+
r"""Symbol information retrieved successfully"""
|
|
38
|
+
|
|
39
|
+
@model_serializer(mode="wrap")
|
|
40
|
+
def serialize_model(self, handler):
|
|
41
|
+
optional_fields = set(["SymbolInfo"])
|
|
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,172 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: cce3ec35a331
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .technicalindicatorresponse import (
|
|
7
|
+
TechnicalIndicatorResponse,
|
|
8
|
+
TechnicalIndicatorResponseTypedDict,
|
|
9
|
+
)
|
|
10
|
+
from .technicalindicatortype import TechnicalIndicatorType
|
|
11
|
+
from enum import Enum
|
|
12
|
+
from finance_dev import models, utils
|
|
13
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
14
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
15
|
+
import pydantic
|
|
16
|
+
from pydantic import field_serializer, model_serializer
|
|
17
|
+
from typing import Optional
|
|
18
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class GetTechnicalIndicatorResolution(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
22
|
+
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`."""
|
|
23
|
+
|
|
24
|
+
ONE = "1"
|
|
25
|
+
FIVE = "5"
|
|
26
|
+
FIFTEEN = "15"
|
|
27
|
+
THIRTY = "30"
|
|
28
|
+
SIXTY = "60"
|
|
29
|
+
D = "D"
|
|
30
|
+
W = "W"
|
|
31
|
+
M = "M"
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class GetTechnicalIndicatorRequestTypedDict(TypedDict):
|
|
35
|
+
symbol: str
|
|
36
|
+
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`."""
|
|
37
|
+
resolution: GetTechnicalIndicatorResolution
|
|
38
|
+
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`."""
|
|
39
|
+
indicator: TechnicalIndicatorType
|
|
40
|
+
r"""Which technical indicator to compute. Common picks: `sma` (simple moving average), `ema` (exponential moving average), `rsi` (relative strength index), `macd` (moving-average convergence-divergence), `bbands` (Bollinger Bands). See `TechnicalIndicatorType` for the full list of supported slugs."""
|
|
41
|
+
from_: int
|
|
42
|
+
r"""Start timestamp (Unix seconds)"""
|
|
43
|
+
to: int
|
|
44
|
+
r"""End timestamp (Unix seconds)"""
|
|
45
|
+
timeperiod: NotRequired[int]
|
|
46
|
+
r"""(Optional) Period for SMA/RSI/BBANDS"""
|
|
47
|
+
fast_period: NotRequired[int]
|
|
48
|
+
r"""MACD fast EMA length, in bars. The shorter of the two moving averages used to compute MACD. Standard value is 12. Only used when `indicator=macd`."""
|
|
49
|
+
slow_period: NotRequired[int]
|
|
50
|
+
r"""MACD slow EMA length, in bars. The longer of the two moving averages used to compute MACD. Standard value is 26. Only used when `indicator=macd`."""
|
|
51
|
+
signal_period: NotRequired[int]
|
|
52
|
+
r"""MACD signal EMA length, in bars. Used to smooth the MACD line into the signal line; crossovers between the two are the basic MACD trading cue. Standard value is 9. Only used when `indicator=macd`."""
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
class GetTechnicalIndicatorRequest(BaseModel):
|
|
56
|
+
symbol: Annotated[
|
|
57
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
58
|
+
]
|
|
59
|
+
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`."""
|
|
60
|
+
|
|
61
|
+
resolution: Annotated[
|
|
62
|
+
GetTechnicalIndicatorResolution,
|
|
63
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
64
|
+
]
|
|
65
|
+
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`."""
|
|
66
|
+
|
|
67
|
+
indicator: Annotated[
|
|
68
|
+
TechnicalIndicatorType,
|
|
69
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
70
|
+
]
|
|
71
|
+
r"""Which technical indicator to compute. Common picks: `sma` (simple moving average), `ema` (exponential moving average), `rsi` (relative strength index), `macd` (moving-average convergence-divergence), `bbands` (Bollinger Bands). See `TechnicalIndicatorType` for the full list of supported slugs."""
|
|
72
|
+
|
|
73
|
+
from_: Annotated[
|
|
74
|
+
int,
|
|
75
|
+
pydantic.Field(alias="from"),
|
|
76
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
77
|
+
]
|
|
78
|
+
r"""Start timestamp (Unix seconds)"""
|
|
79
|
+
|
|
80
|
+
to: Annotated[
|
|
81
|
+
int, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
82
|
+
]
|
|
83
|
+
r"""End timestamp (Unix seconds)"""
|
|
84
|
+
|
|
85
|
+
timeperiod: Annotated[
|
|
86
|
+
Optional[int],
|
|
87
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
88
|
+
] = None
|
|
89
|
+
r"""(Optional) Period for SMA/RSI/BBANDS"""
|
|
90
|
+
|
|
91
|
+
fast_period: Annotated[
|
|
92
|
+
Optional[int],
|
|
93
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
94
|
+
] = None
|
|
95
|
+
r"""MACD fast EMA length, in bars. The shorter of the two moving averages used to compute MACD. Standard value is 12. Only used when `indicator=macd`."""
|
|
96
|
+
|
|
97
|
+
slow_period: Annotated[
|
|
98
|
+
Optional[int],
|
|
99
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
100
|
+
] = None
|
|
101
|
+
r"""MACD slow EMA length, in bars. The longer of the two moving averages used to compute MACD. Standard value is 26. Only used when `indicator=macd`."""
|
|
102
|
+
|
|
103
|
+
signal_period: Annotated[
|
|
104
|
+
Optional[int],
|
|
105
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
106
|
+
] = None
|
|
107
|
+
r"""MACD signal EMA length, in bars. Used to smooth the MACD line into the signal line; crossovers between the two are the basic MACD trading cue. Standard value is 9. Only used when `indicator=macd`."""
|
|
108
|
+
|
|
109
|
+
@field_serializer("resolution")
|
|
110
|
+
def serialize_resolution(self, value):
|
|
111
|
+
if isinstance(value, str):
|
|
112
|
+
try:
|
|
113
|
+
return models.GetTechnicalIndicatorResolution(value)
|
|
114
|
+
except ValueError:
|
|
115
|
+
return value
|
|
116
|
+
return value
|
|
117
|
+
|
|
118
|
+
@field_serializer("indicator")
|
|
119
|
+
def serialize_indicator(self, value):
|
|
120
|
+
if isinstance(value, str):
|
|
121
|
+
try:
|
|
122
|
+
return models.TechnicalIndicatorType(value)
|
|
123
|
+
except ValueError:
|
|
124
|
+
return value
|
|
125
|
+
return value
|
|
126
|
+
|
|
127
|
+
@model_serializer(mode="wrap")
|
|
128
|
+
def serialize_model(self, handler):
|
|
129
|
+
optional_fields = set(
|
|
130
|
+
["timeperiod", "fast_period", "slow_period", "signal_period"]
|
|
131
|
+
)
|
|
132
|
+
serialized = handler(self)
|
|
133
|
+
m = {}
|
|
134
|
+
|
|
135
|
+
for n, f in type(self).model_fields.items():
|
|
136
|
+
k = f.alias or n
|
|
137
|
+
val = serialized.get(k, serialized.get(n))
|
|
138
|
+
|
|
139
|
+
if val != UNSET_SENTINEL:
|
|
140
|
+
if val is not None or k not in optional_fields:
|
|
141
|
+
m[k] = val
|
|
142
|
+
|
|
143
|
+
return m
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
class GetTechnicalIndicatorResponseTypedDict(TypedDict):
|
|
147
|
+
http_meta: HTTPMetadataTypedDict
|
|
148
|
+
technical_indicator_response: NotRequired[TechnicalIndicatorResponseTypedDict]
|
|
149
|
+
r"""Successful response"""
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
class GetTechnicalIndicatorResponse(BaseModel):
|
|
153
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
154
|
+
|
|
155
|
+
technical_indicator_response: Optional[TechnicalIndicatorResponse] = None
|
|
156
|
+
r"""Successful response"""
|
|
157
|
+
|
|
158
|
+
@model_serializer(mode="wrap")
|
|
159
|
+
def serialize_model(self, handler):
|
|
160
|
+
optional_fields = set(["TechnicalIndicatorResponse"])
|
|
161
|
+
serialized = handler(self)
|
|
162
|
+
m = {}
|
|
163
|
+
|
|
164
|
+
for n, f in type(self).model_fields.items():
|
|
165
|
+
k = f.alias or n
|
|
166
|
+
val = serialized.get(k, serialized.get(n))
|
|
167
|
+
|
|
168
|
+
if val != UNSET_SENTINEL:
|
|
169
|
+
if val is not None or k not in optional_fields:
|
|
170
|
+
m[k] = val
|
|
171
|
+
|
|
172
|
+
return m
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 40a5227e7fa9
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .technicalpatternsresponse import (
|
|
7
|
+
TechnicalPatternsResponse,
|
|
8
|
+
TechnicalPatternsResponseTypedDict,
|
|
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 GetTechnicalPatternsResolution(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 GetTechnicalPatternsRequestTypedDict(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: GetTechnicalPatternsResolution
|
|
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 GetTechnicalPatternsRequest(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
|
+
GetTechnicalPatternsResolution,
|
|
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.GetTechnicalPatternsResolution(value)
|
|
57
|
+
except ValueError:
|
|
58
|
+
return value
|
|
59
|
+
return value
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
class GetTechnicalPatternsResponseTypedDict(TypedDict):
|
|
63
|
+
http_meta: HTTPMetadataTypedDict
|
|
64
|
+
technical_patterns_response: NotRequired[TechnicalPatternsResponseTypedDict]
|
|
65
|
+
r"""Successful response"""
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
class GetTechnicalPatternsResponse(BaseModel):
|
|
69
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
70
|
+
|
|
71
|
+
technical_patterns_response: Optional[TechnicalPatternsResponse] = None
|
|
72
|
+
r"""Successful response"""
|
|
73
|
+
|
|
74
|
+
@model_serializer(mode="wrap")
|
|
75
|
+
def serialize_model(self, handler):
|
|
76
|
+
optional_fields = set(["TechnicalPatternsResponse"])
|
|
77
|
+
serialized = handler(self)
|
|
78
|
+
m = {}
|
|
79
|
+
|
|
80
|
+
for n, f in type(self).model_fields.items():
|
|
81
|
+
k = f.alias or n
|
|
82
|
+
val = serialized.get(k, serialized.get(n))
|
|
83
|
+
|
|
84
|
+
if val != UNSET_SENTINEL:
|
|
85
|
+
if val is not None or k not in optional_fields:
|
|
86
|
+
m[k] = val
|
|
87
|
+
|
|
88
|
+
return m
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: e1503f43936d
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .tenderofferidentifiertype import TenderOfferIdentifierType
|
|
7
|
+
from .tenderoffersresponse import TenderOffersResponse, TenderOffersResponseTypedDict
|
|
8
|
+
from datetime import date
|
|
9
|
+
from finance_dev import models
|
|
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 Optional
|
|
15
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class GetTenderOffersRequestTypedDict(TypedDict):
|
|
19
|
+
identifier: str
|
|
20
|
+
r"""Identifier value for the company you're querying. The format depends on `identifierType`:
|
|
21
|
+
- `Symbol` — exchange ticker (e.g. `AAPL`).
|
|
22
|
+
- `CUSIP` — 9-character U.S./Canadian identifier (e.g. `037833100`).
|
|
23
|
+
- `ISIN` — 12-character international identifier (e.g. `US0378331005`).
|
|
24
|
+
- `SEDOL` — 7-character UK identifier.
|
|
25
|
+
- `Valoren` — Swiss security identifier.
|
|
26
|
+
- `FIGI` — Bloomberg Financial Instrument Global Identifier.
|
|
27
|
+
- `CompositeFIGI` — country-level composite FIGI.
|
|
28
|
+
|
|
29
|
+
Must match the kind selected in `identifierType`.
|
|
30
|
+
"""
|
|
31
|
+
identifier_type: TenderOfferIdentifierType
|
|
32
|
+
r"""Tells the API how to interpret `identifier`. See `TenderOfferIdentifierType` for the full set of supported values and what each one means."""
|
|
33
|
+
start_date: date
|
|
34
|
+
r"""Start of the tender-offer announcement window, inclusive. Format: `YYYY-MM-DD` (e.g. `2024-01-01`)."""
|
|
35
|
+
end_date: date
|
|
36
|
+
r"""End of the tender-offer announcement window, inclusive. Format: `YYYY-MM-DD` (e.g. `2024-12-31`)."""
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class GetTenderOffersRequest(BaseModel):
|
|
40
|
+
identifier: Annotated[
|
|
41
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
42
|
+
]
|
|
43
|
+
r"""Identifier value for the company you're querying. The format depends on `identifierType`:
|
|
44
|
+
- `Symbol` — exchange ticker (e.g. `AAPL`).
|
|
45
|
+
- `CUSIP` — 9-character U.S./Canadian identifier (e.g. `037833100`).
|
|
46
|
+
- `ISIN` — 12-character international identifier (e.g. `US0378331005`).
|
|
47
|
+
- `SEDOL` — 7-character UK identifier.
|
|
48
|
+
- `Valoren` — Swiss security identifier.
|
|
49
|
+
- `FIGI` — Bloomberg Financial Instrument Global Identifier.
|
|
50
|
+
- `CompositeFIGI` — country-level composite FIGI.
|
|
51
|
+
|
|
52
|
+
Must match the kind selected in `identifierType`.
|
|
53
|
+
"""
|
|
54
|
+
|
|
55
|
+
identifier_type: Annotated[
|
|
56
|
+
TenderOfferIdentifierType,
|
|
57
|
+
pydantic.Field(alias="identifierType"),
|
|
58
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
59
|
+
]
|
|
60
|
+
r"""Tells the API how to interpret `identifier`. See `TenderOfferIdentifierType` for the full set of supported values and what each one means."""
|
|
61
|
+
|
|
62
|
+
start_date: Annotated[
|
|
63
|
+
date,
|
|
64
|
+
pydantic.Field(alias="startDate"),
|
|
65
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
66
|
+
]
|
|
67
|
+
r"""Start of the tender-offer announcement window, inclusive. Format: `YYYY-MM-DD` (e.g. `2024-01-01`)."""
|
|
68
|
+
|
|
69
|
+
end_date: Annotated[
|
|
70
|
+
date,
|
|
71
|
+
pydantic.Field(alias="endDate"),
|
|
72
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
73
|
+
]
|
|
74
|
+
r"""End of the tender-offer announcement window, inclusive. Format: `YYYY-MM-DD` (e.g. `2024-12-31`)."""
|
|
75
|
+
|
|
76
|
+
@field_serializer("identifier_type")
|
|
77
|
+
def serialize_identifier_type(self, value):
|
|
78
|
+
if isinstance(value, str):
|
|
79
|
+
try:
|
|
80
|
+
return models.TenderOfferIdentifierType(value)
|
|
81
|
+
except ValueError:
|
|
82
|
+
return value
|
|
83
|
+
return value
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
class GetTenderOffersResponseTypedDict(TypedDict):
|
|
87
|
+
http_meta: HTTPMetadataTypedDict
|
|
88
|
+
tender_offers_response: NotRequired[TenderOffersResponseTypedDict]
|
|
89
|
+
r"""Tender offers data."""
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
class GetTenderOffersResponse(BaseModel):
|
|
93
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
94
|
+
|
|
95
|
+
tender_offers_response: Optional[TenderOffersResponse] = None
|
|
96
|
+
r"""Tender offers data."""
|
|
97
|
+
|
|
98
|
+
@model_serializer(mode="wrap")
|
|
99
|
+
def serialize_model(self, handler):
|
|
100
|
+
optional_fields = set(["TenderOffersResponse"])
|
|
101
|
+
serialized = handler(self)
|
|
102
|
+
m = {}
|
|
103
|
+
|
|
104
|
+
for n, f in type(self).model_fields.items():
|
|
105
|
+
k = f.alias or n
|
|
106
|
+
val = serialized.get(k, serialized.get(n))
|
|
107
|
+
|
|
108
|
+
if val != UNSET_SENTINEL:
|
|
109
|
+
if val is not None or k not in optional_fields:
|
|
110
|
+
m[k] = val
|
|
111
|
+
|
|
112
|
+
return m
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: bf0c140979e0
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .tickchartbars import TickChartBars, TickChartBarsTypedDict
|
|
7
|
+
from .tickresolution import TickResolution
|
|
8
|
+
from finance_dev import models
|
|
9
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
10
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
11
|
+
import pydantic
|
|
12
|
+
from pydantic import field_serializer, model_serializer
|
|
13
|
+
from typing import Optional
|
|
14
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class GetTickHistoryRequestTypedDict(TypedDict):
|
|
18
|
+
symbol: str
|
|
19
|
+
r"""Symbol to fetch tick bars for. Use the exact symbol returned by symbol search, such as `AAPL` for equities."""
|
|
20
|
+
resolution: TickResolution
|
|
21
|
+
r"""Tick bar size: the number of trades that make up one bar."""
|
|
22
|
+
countback: NotRequired[int]
|
|
23
|
+
r"""How many bars to return, counting back from the most recent bar (or from `cursor`, if provided). Defaults to 300 when omitted. The maximum depends on `resolution`: each call is bounded by a fixed per-request trade budget, so low-count ticks (e.g. `1T`) can return up to 5000 bars, while high-count ticks (e.g. `1000T`) may cap out around 50. Requests above the resolution's maximum are silently reduced to it — this is normal, not an error. Use the `cursor` field to keep loading further back until you have as much history as you need."""
|
|
24
|
+
cursor: NotRequired[str]
|
|
25
|
+
r"""Pagination token for loading OLDER bars, used when a user scrolls a chart backward in time. Omit this parameter for the initial chart load, which returns the most recent bars. To load the page before that, pass the `nextTo` value from the previous response as `cursor`. Treat this value as opaque — always pass it back exactly as received; do not attempt to construct, decode, or modify it."""
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class GetTickHistoryRequest(BaseModel):
|
|
29
|
+
symbol: Annotated[
|
|
30
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
31
|
+
]
|
|
32
|
+
r"""Symbol to fetch tick bars for. Use the exact symbol returned by symbol search, such as `AAPL` for equities."""
|
|
33
|
+
|
|
34
|
+
resolution: Annotated[
|
|
35
|
+
TickResolution,
|
|
36
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
37
|
+
]
|
|
38
|
+
r"""Tick bar size: the number of trades that make up one bar."""
|
|
39
|
+
|
|
40
|
+
countback: Annotated[
|
|
41
|
+
Optional[int],
|
|
42
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
43
|
+
] = 300
|
|
44
|
+
r"""How many bars to return, counting back from the most recent bar (or from `cursor`, if provided). Defaults to 300 when omitted. The maximum depends on `resolution`: each call is bounded by a fixed per-request trade budget, so low-count ticks (e.g. `1T`) can return up to 5000 bars, while high-count ticks (e.g. `1000T`) may cap out around 50. Requests above the resolution's maximum are silently reduced to it — this is normal, not an error. Use the `cursor` field to keep loading further back until you have as much history as you need."""
|
|
45
|
+
|
|
46
|
+
cursor: Annotated[
|
|
47
|
+
Optional[str],
|
|
48
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
49
|
+
] = None
|
|
50
|
+
r"""Pagination token for loading OLDER bars, used when a user scrolls a chart backward in time. Omit this parameter for the initial chart load, which returns the most recent bars. To load the page before that, pass the `nextTo` value from the previous response as `cursor`. Treat this value as opaque — always pass it back exactly as received; do not attempt to construct, decode, or modify it."""
|
|
51
|
+
|
|
52
|
+
@field_serializer("resolution")
|
|
53
|
+
def serialize_resolution(self, value):
|
|
54
|
+
if isinstance(value, str):
|
|
55
|
+
try:
|
|
56
|
+
return models.TickResolution(value)
|
|
57
|
+
except ValueError:
|
|
58
|
+
return value
|
|
59
|
+
return value
|
|
60
|
+
|
|
61
|
+
@model_serializer(mode="wrap")
|
|
62
|
+
def serialize_model(self, handler):
|
|
63
|
+
optional_fields = set(["countback", "cursor"])
|
|
64
|
+
serialized = handler(self)
|
|
65
|
+
m = {}
|
|
66
|
+
|
|
67
|
+
for n, f in type(self).model_fields.items():
|
|
68
|
+
k = f.alias or n
|
|
69
|
+
val = serialized.get(k, serialized.get(n))
|
|
70
|
+
|
|
71
|
+
if val != UNSET_SENTINEL:
|
|
72
|
+
if val is not None or k not in optional_fields:
|
|
73
|
+
m[k] = val
|
|
74
|
+
|
|
75
|
+
return m
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
class GetTickHistoryResponseTypedDict(TypedDict):
|
|
79
|
+
http_meta: HTTPMetadataTypedDict
|
|
80
|
+
tick_chart_bars: NotRequired[TickChartBarsTypedDict]
|
|
81
|
+
r"""Tick bars in TradingView UDF format, extended with a pagination cursor. Always returns 200; check **s** (status): `ok` = data in t, o, h, l, c, v (and usually `nextTo`); `no_data` = no matching trade activity, and `nextTo` will be absent — stop requesting further history; `error` = errmsg contains reason (e.g. invalid resolution or malformed cursor)."""
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
class GetTickHistoryResponse(BaseModel):
|
|
85
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
86
|
+
|
|
87
|
+
tick_chart_bars: Optional[TickChartBars] = None
|
|
88
|
+
r"""Tick bars in TradingView UDF format, extended with a pagination cursor. Always returns 200; check **s** (status): `ok` = data in t, o, h, l, c, v (and usually `nextTo`); `no_data` = no matching trade activity, and `nextTo` will be absent — stop requesting further history; `error` = errmsg contains reason (e.g. invalid resolution or malformed cursor)."""
|
|
89
|
+
|
|
90
|
+
@model_serializer(mode="wrap")
|
|
91
|
+
def serialize_model(self, handler):
|
|
92
|
+
optional_fields = set(["TickChartBars"])
|
|
93
|
+
serialized = handler(self)
|
|
94
|
+
m = {}
|
|
95
|
+
|
|
96
|
+
for n, f in type(self).model_fields.items():
|
|
97
|
+
k = f.alias or n
|
|
98
|
+
val = serialized.get(k, serialized.get(n))
|
|
99
|
+
|
|
100
|
+
if val != UNSET_SENTINEL:
|
|
101
|
+
if val is not None or k not in optional_fields:
|
|
102
|
+
m[k] = val
|
|
103
|
+
|
|
104
|
+
return m
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 288a74785eef
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .symboldetails import SymbolDetails, SymbolDetailsTypedDict
|
|
7
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
8
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
9
|
+
import pydantic
|
|
10
|
+
from pydantic import model_serializer
|
|
11
|
+
from typing import List, Optional
|
|
12
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class GetTopGainersRequestTypedDict(TypedDict):
|
|
16
|
+
limit: NotRequired[int]
|
|
17
|
+
r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits. (optional, default 10)"""
|
|
18
|
+
size: NotRequired[int]
|
|
19
|
+
r"""Alias for limit. Ignored when limit is supplied."""
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class GetTopGainersRequest(BaseModel):
|
|
23
|
+
limit: Annotated[
|
|
24
|
+
Optional[int],
|
|
25
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
26
|
+
] = 10
|
|
27
|
+
r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits. (optional, default 10)"""
|
|
28
|
+
|
|
29
|
+
size: Annotated[
|
|
30
|
+
Optional[int],
|
|
31
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
32
|
+
] = 10
|
|
33
|
+
r"""Alias for limit. Ignored when limit is supplied."""
|
|
34
|
+
|
|
35
|
+
@model_serializer(mode="wrap")
|
|
36
|
+
def serialize_model(self, handler):
|
|
37
|
+
optional_fields = set(["limit", "size"])
|
|
38
|
+
serialized = handler(self)
|
|
39
|
+
m = {}
|
|
40
|
+
|
|
41
|
+
for n, f in type(self).model_fields.items():
|
|
42
|
+
k = f.alias or n
|
|
43
|
+
val = serialized.get(k, serialized.get(n))
|
|
44
|
+
|
|
45
|
+
if val != UNSET_SENTINEL:
|
|
46
|
+
if val is not None or k not in optional_fields:
|
|
47
|
+
m[k] = val
|
|
48
|
+
|
|
49
|
+
return m
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
class GetTopGainersResponseTypedDict(TypedDict):
|
|
53
|
+
http_meta: HTTPMetadataTypedDict
|
|
54
|
+
symbol_details: NotRequired[List[SymbolDetailsTypedDict]]
|
|
55
|
+
r"""Top gaining stocks retrieved successfully"""
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
class GetTopGainersResponse(BaseModel):
|
|
59
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
60
|
+
|
|
61
|
+
symbol_details: Optional[List[SymbolDetails]] = None
|
|
62
|
+
r"""Top gaining stocks retrieved successfully"""
|
|
63
|
+
|
|
64
|
+
@model_serializer(mode="wrap")
|
|
65
|
+
def serialize_model(self, handler):
|
|
66
|
+
optional_fields = set(["SymbolDetails"])
|
|
67
|
+
serialized = handler(self)
|
|
68
|
+
m = {}
|
|
69
|
+
|
|
70
|
+
for n, f in type(self).model_fields.items():
|
|
71
|
+
k = f.alias or n
|
|
72
|
+
val = serialized.get(k, serialized.get(n))
|
|
73
|
+
|
|
74
|
+
if val != UNSET_SENTINEL:
|
|
75
|
+
if val is not None or k not in optional_fields:
|
|
76
|
+
m[k] = val
|
|
77
|
+
|
|
78
|
+
return m
|