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,198 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 112bec940b11
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
6
|
+
import pydantic
|
|
7
|
+
from pydantic import model_serializer
|
|
8
|
+
from typing import List, Optional
|
|
9
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class ShortVolumeResponseResultTypedDict(TypedDict):
|
|
13
|
+
adf_short_volume: NotRequired[int]
|
|
14
|
+
r"""Short volume reported through the FINRA Alternative Display Facility (ADF)"""
|
|
15
|
+
adf_short_volume_exempt: NotRequired[int]
|
|
16
|
+
r"""Short-sale-exempt portion of the ADF short volume"""
|
|
17
|
+
date_: NotRequired[str]
|
|
18
|
+
r"""Trading date the short volume applies to (YYYY-MM-DD)"""
|
|
19
|
+
exempt_volume: NotRequired[int]
|
|
20
|
+
r"""Short volume that was marked short-sale exempt"""
|
|
21
|
+
nasdaq_carteret_short_volume: NotRequired[int]
|
|
22
|
+
r"""Short volume reported through the Nasdaq Carteret facility"""
|
|
23
|
+
nasdaq_carteret_short_volume_exempt: NotRequired[int]
|
|
24
|
+
r"""Short-sale-exempt portion of the Nasdaq Carteret short volume"""
|
|
25
|
+
nasdaq_chicago_short_volume: NotRequired[int]
|
|
26
|
+
r"""Short volume reported through the Nasdaq Chicago facility"""
|
|
27
|
+
nasdaq_chicago_short_volume_exempt: NotRequired[int]
|
|
28
|
+
r"""Short-sale-exempt portion of the Nasdaq Chicago short volume"""
|
|
29
|
+
non_exempt_volume: NotRequired[int]
|
|
30
|
+
r"""Short volume that was not marked short-sale exempt"""
|
|
31
|
+
nyse_short_volume: NotRequired[int]
|
|
32
|
+
r"""Short volume reported through the NYSE facility"""
|
|
33
|
+
nyse_short_volume_exempt: NotRequired[int]
|
|
34
|
+
r"""Short-sale-exempt portion of the NYSE short volume"""
|
|
35
|
+
short_volume: NotRequired[int]
|
|
36
|
+
r"""Total number of shares sold short during the trading date"""
|
|
37
|
+
short_volume_ratio: NotRequired[float]
|
|
38
|
+
r"""Short volume as a proportion of total volume, as computed by the upstream provider"""
|
|
39
|
+
ticker: NotRequired[str]
|
|
40
|
+
r"""Stock ticker symbol"""
|
|
41
|
+
total_volume: NotRequired[int]
|
|
42
|
+
r"""Total shares traded during the trading date"""
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
class ShortVolumeResponseResult(BaseModel):
|
|
46
|
+
adf_short_volume: Annotated[
|
|
47
|
+
Optional[int], pydantic.Field(alias="adfShortVolume")
|
|
48
|
+
] = None
|
|
49
|
+
r"""Short volume reported through the FINRA Alternative Display Facility (ADF)"""
|
|
50
|
+
|
|
51
|
+
adf_short_volume_exempt: Annotated[
|
|
52
|
+
Optional[int], pydantic.Field(alias="adfShortVolumeExempt")
|
|
53
|
+
] = None
|
|
54
|
+
r"""Short-sale-exempt portion of the ADF short volume"""
|
|
55
|
+
|
|
56
|
+
date_: Annotated[Optional[str], pydantic.Field(alias="date")] = None
|
|
57
|
+
r"""Trading date the short volume applies to (YYYY-MM-DD)"""
|
|
58
|
+
|
|
59
|
+
exempt_volume: Annotated[Optional[int], pydantic.Field(alias="exemptVolume")] = None
|
|
60
|
+
r"""Short volume that was marked short-sale exempt"""
|
|
61
|
+
|
|
62
|
+
nasdaq_carteret_short_volume: Annotated[
|
|
63
|
+
Optional[int], pydantic.Field(alias="nasdaqCarteretShortVolume")
|
|
64
|
+
] = None
|
|
65
|
+
r"""Short volume reported through the Nasdaq Carteret facility"""
|
|
66
|
+
|
|
67
|
+
nasdaq_carteret_short_volume_exempt: Annotated[
|
|
68
|
+
Optional[int], pydantic.Field(alias="nasdaqCarteretShortVolumeExempt")
|
|
69
|
+
] = None
|
|
70
|
+
r"""Short-sale-exempt portion of the Nasdaq Carteret short volume"""
|
|
71
|
+
|
|
72
|
+
nasdaq_chicago_short_volume: Annotated[
|
|
73
|
+
Optional[int], pydantic.Field(alias="nasdaqChicagoShortVolume")
|
|
74
|
+
] = None
|
|
75
|
+
r"""Short volume reported through the Nasdaq Chicago facility"""
|
|
76
|
+
|
|
77
|
+
nasdaq_chicago_short_volume_exempt: Annotated[
|
|
78
|
+
Optional[int], pydantic.Field(alias="nasdaqChicagoShortVolumeExempt")
|
|
79
|
+
] = None
|
|
80
|
+
r"""Short-sale-exempt portion of the Nasdaq Chicago short volume"""
|
|
81
|
+
|
|
82
|
+
non_exempt_volume: Annotated[
|
|
83
|
+
Optional[int], pydantic.Field(alias="nonExemptVolume")
|
|
84
|
+
] = None
|
|
85
|
+
r"""Short volume that was not marked short-sale exempt"""
|
|
86
|
+
|
|
87
|
+
nyse_short_volume: Annotated[
|
|
88
|
+
Optional[int], pydantic.Field(alias="nyseShortVolume")
|
|
89
|
+
] = None
|
|
90
|
+
r"""Short volume reported through the NYSE facility"""
|
|
91
|
+
|
|
92
|
+
nyse_short_volume_exempt: Annotated[
|
|
93
|
+
Optional[int], pydantic.Field(alias="nyseShortVolumeExempt")
|
|
94
|
+
] = None
|
|
95
|
+
r"""Short-sale-exempt portion of the NYSE short volume"""
|
|
96
|
+
|
|
97
|
+
short_volume: Annotated[Optional[int], pydantic.Field(alias="shortVolume")] = None
|
|
98
|
+
r"""Total number of shares sold short during the trading date"""
|
|
99
|
+
|
|
100
|
+
short_volume_ratio: Annotated[
|
|
101
|
+
Optional[float], pydantic.Field(alias="shortVolumeRatio")
|
|
102
|
+
] = None
|
|
103
|
+
r"""Short volume as a proportion of total volume, as computed by the upstream provider"""
|
|
104
|
+
|
|
105
|
+
ticker: Optional[str] = None
|
|
106
|
+
r"""Stock ticker symbol"""
|
|
107
|
+
|
|
108
|
+
total_volume: Annotated[Optional[int], pydantic.Field(alias="totalVolume")] = None
|
|
109
|
+
r"""Total shares traded during the trading date"""
|
|
110
|
+
|
|
111
|
+
@model_serializer(mode="wrap")
|
|
112
|
+
def serialize_model(self, handler):
|
|
113
|
+
optional_fields = set(
|
|
114
|
+
[
|
|
115
|
+
"adfShortVolume",
|
|
116
|
+
"adfShortVolumeExempt",
|
|
117
|
+
"date",
|
|
118
|
+
"exemptVolume",
|
|
119
|
+
"nasdaqCarteretShortVolume",
|
|
120
|
+
"nasdaqCarteretShortVolumeExempt",
|
|
121
|
+
"nasdaqChicagoShortVolume",
|
|
122
|
+
"nasdaqChicagoShortVolumeExempt",
|
|
123
|
+
"nonExemptVolume",
|
|
124
|
+
"nyseShortVolume",
|
|
125
|
+
"nyseShortVolumeExempt",
|
|
126
|
+
"shortVolume",
|
|
127
|
+
"shortVolumeRatio",
|
|
128
|
+
"ticker",
|
|
129
|
+
"totalVolume",
|
|
130
|
+
]
|
|
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 ShortVolumeResponseTypedDict(TypedDict):
|
|
147
|
+
r"""Daily short sale volume per ticker, including a breakdown by reporting venue, sourced from Polygon."""
|
|
148
|
+
|
|
149
|
+
next_url: NotRequired[str]
|
|
150
|
+
r"""URL for the next page of results, omitted when there are no more pages"""
|
|
151
|
+
request_id: NotRequired[str]
|
|
152
|
+
r"""Request identifier returned by the upstream data provider"""
|
|
153
|
+
results: NotRequired[List[ShortVolumeResponseResultTypedDict]]
|
|
154
|
+
r"""Daily short sale volume records"""
|
|
155
|
+
status: NotRequired[str]
|
|
156
|
+
r"""Status string from the upstream data provider — typically `OK` for a successful response. Treat any other value as an error indicator alongside the HTTP status code."""
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
class ShortVolumeResponse(BaseModel):
|
|
160
|
+
r"""Daily short sale volume per ticker, including a breakdown by reporting venue, sourced from Polygon."""
|
|
161
|
+
|
|
162
|
+
next_url: Annotated[Optional[str], pydantic.Field(alias="nextUrl")] = None
|
|
163
|
+
r"""URL for the next page of results, omitted when there are no more pages"""
|
|
164
|
+
|
|
165
|
+
request_id: Annotated[Optional[str], pydantic.Field(alias="requestId")] = None
|
|
166
|
+
r"""Request identifier returned by the upstream data provider"""
|
|
167
|
+
|
|
168
|
+
results: Optional[List[ShortVolumeResponseResult]] = None
|
|
169
|
+
r"""Daily short sale volume records"""
|
|
170
|
+
|
|
171
|
+
status: Optional[str] = None
|
|
172
|
+
r"""Status string from the upstream data provider — typically `OK` for a successful response. Treat any other value as an error indicator alongside the HTTP status code."""
|
|
173
|
+
|
|
174
|
+
@model_serializer(mode="wrap")
|
|
175
|
+
def serialize_model(self, handler):
|
|
176
|
+
optional_fields = set(["nextUrl", "requestId", "results", "status"])
|
|
177
|
+
serialized = handler(self)
|
|
178
|
+
m = {}
|
|
179
|
+
|
|
180
|
+
for n, f in type(self).model_fields.items():
|
|
181
|
+
k = f.alias or n
|
|
182
|
+
val = serialized.get(k, serialized.get(n))
|
|
183
|
+
|
|
184
|
+
if val != UNSET_SENTINEL:
|
|
185
|
+
if val is not None or k not in optional_fields:
|
|
186
|
+
m[k] = val
|
|
187
|
+
|
|
188
|
+
return m
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
try:
|
|
192
|
+
ShortVolumeResponseResult.model_rebuild()
|
|
193
|
+
except NameError:
|
|
194
|
+
pass
|
|
195
|
+
try:
|
|
196
|
+
ShortVolumeResponse.model_rebuild()
|
|
197
|
+
except NameError:
|
|
198
|
+
pass
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: cffb31885ace
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
6
|
+
import pydantic
|
|
7
|
+
from pydantic import model_serializer
|
|
8
|
+
from typing import List, Optional
|
|
9
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class SocialSentimentResponseDataTypedDict(TypedDict):
|
|
13
|
+
at_time: NotRequired[str]
|
|
14
|
+
r"""Timestamp of the data point as provided by the data vendor."""
|
|
15
|
+
mention: NotRequired[int]
|
|
16
|
+
r"""Total number of mentions."""
|
|
17
|
+
negative_mention: NotRequired[int]
|
|
18
|
+
r"""Number of negative mentions."""
|
|
19
|
+
negative_score: NotRequired[float]
|
|
20
|
+
r"""Negative sentiment score."""
|
|
21
|
+
positive_mention: NotRequired[int]
|
|
22
|
+
r"""Number of positive mentions."""
|
|
23
|
+
positive_score: NotRequired[float]
|
|
24
|
+
r"""Positive sentiment score."""
|
|
25
|
+
score: NotRequired[float]
|
|
26
|
+
r"""Overall sentiment score."""
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class SocialSentimentResponseData(BaseModel):
|
|
30
|
+
at_time: Annotated[Optional[str], pydantic.Field(alias="atTime")] = None
|
|
31
|
+
r"""Timestamp of the data point as provided by the data vendor."""
|
|
32
|
+
|
|
33
|
+
mention: Optional[int] = None
|
|
34
|
+
r"""Total number of mentions."""
|
|
35
|
+
|
|
36
|
+
negative_mention: Annotated[
|
|
37
|
+
Optional[int], pydantic.Field(alias="negativeMention")
|
|
38
|
+
] = None
|
|
39
|
+
r"""Number of negative mentions."""
|
|
40
|
+
|
|
41
|
+
negative_score: Annotated[
|
|
42
|
+
Optional[float], pydantic.Field(alias="negativeScore")
|
|
43
|
+
] = None
|
|
44
|
+
r"""Negative sentiment score."""
|
|
45
|
+
|
|
46
|
+
positive_mention: Annotated[
|
|
47
|
+
Optional[int], pydantic.Field(alias="positiveMention")
|
|
48
|
+
] = None
|
|
49
|
+
r"""Number of positive mentions."""
|
|
50
|
+
|
|
51
|
+
positive_score: Annotated[
|
|
52
|
+
Optional[float], pydantic.Field(alias="positiveScore")
|
|
53
|
+
] = None
|
|
54
|
+
r"""Positive sentiment score."""
|
|
55
|
+
|
|
56
|
+
score: Optional[float] = None
|
|
57
|
+
r"""Overall sentiment score."""
|
|
58
|
+
|
|
59
|
+
@model_serializer(mode="wrap")
|
|
60
|
+
def serialize_model(self, handler):
|
|
61
|
+
optional_fields = set(
|
|
62
|
+
[
|
|
63
|
+
"atTime",
|
|
64
|
+
"mention",
|
|
65
|
+
"negativeMention",
|
|
66
|
+
"negativeScore",
|
|
67
|
+
"positiveMention",
|
|
68
|
+
"positiveScore",
|
|
69
|
+
"score",
|
|
70
|
+
]
|
|
71
|
+
)
|
|
72
|
+
serialized = handler(self)
|
|
73
|
+
m = {}
|
|
74
|
+
|
|
75
|
+
for n, f in type(self).model_fields.items():
|
|
76
|
+
k = f.alias or n
|
|
77
|
+
val = serialized.get(k, serialized.get(n))
|
|
78
|
+
|
|
79
|
+
if val != UNSET_SENTINEL:
|
|
80
|
+
if val is not None or k not in optional_fields:
|
|
81
|
+
m[k] = val
|
|
82
|
+
|
|
83
|
+
return m
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
class SocialSentimentResponseTypedDict(TypedDict):
|
|
87
|
+
r"""Social media sentiment time series for a symbol."""
|
|
88
|
+
|
|
89
|
+
data: NotRequired[List[SocialSentimentResponseDataTypedDict]]
|
|
90
|
+
r"""Sentiment data points."""
|
|
91
|
+
symbol: NotRequired[str]
|
|
92
|
+
r"""Ticker symbol of the company."""
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
class SocialSentimentResponse(BaseModel):
|
|
96
|
+
r"""Social media sentiment time series for a symbol."""
|
|
97
|
+
|
|
98
|
+
data: Optional[List[SocialSentimentResponseData]] = None
|
|
99
|
+
r"""Sentiment data points."""
|
|
100
|
+
|
|
101
|
+
symbol: Optional[str] = None
|
|
102
|
+
r"""Ticker symbol of the company."""
|
|
103
|
+
|
|
104
|
+
@model_serializer(mode="wrap")
|
|
105
|
+
def serialize_model(self, handler):
|
|
106
|
+
optional_fields = set(["data", "symbol"])
|
|
107
|
+
serialized = handler(self)
|
|
108
|
+
m = {}
|
|
109
|
+
|
|
110
|
+
for n, f in type(self).model_fields.items():
|
|
111
|
+
k = f.alias or n
|
|
112
|
+
val = serialized.get(k, serialized.get(n))
|
|
113
|
+
|
|
114
|
+
if val != UNSET_SENTINEL:
|
|
115
|
+
if val is not None or k not in optional_fields:
|
|
116
|
+
m[k] = val
|
|
117
|
+
|
|
118
|
+
return m
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
try:
|
|
122
|
+
SocialSentimentResponseData.model_rebuild()
|
|
123
|
+
except NameError:
|
|
124
|
+
pass
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: c5ce248a2664
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from enum import Enum
|
|
6
|
+
from finance_dev import utils
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class SortOrderEnum(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
10
|
+
r"""Sort direction for results. Use ascending for oldest or smallest first, descending for newest or largest first."""
|
|
11
|
+
|
|
12
|
+
ASC = "asc"
|
|
13
|
+
DESC = "desc"
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: bdcdccecf852
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from datetime import date
|
|
6
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
7
|
+
import pydantic
|
|
8
|
+
from pydantic import model_serializer
|
|
9
|
+
from typing import List, Optional
|
|
10
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class SpinoffTypedDict(TypedDict):
|
|
14
|
+
declared_date: NotRequired[date]
|
|
15
|
+
r"""Date when the spinoff was announced (YYYY-MM-DD format)"""
|
|
16
|
+
description: NotRequired[str]
|
|
17
|
+
r"""Description of the spinoff transaction"""
|
|
18
|
+
ex_date: NotRequired[date]
|
|
19
|
+
r"""Ex-date when the stock trades without spinoff rights (YYYY-MM-DD format)"""
|
|
20
|
+
from_company_name: NotRequired[str]
|
|
21
|
+
r"""Name of the parent company"""
|
|
22
|
+
from_symbol: NotRequired[str]
|
|
23
|
+
r"""Ticker symbol of the parent company"""
|
|
24
|
+
payment_date: NotRequired[date]
|
|
25
|
+
r"""Date when spun-off shares are distributed to shareholders (YYYY-MM-DD format)"""
|
|
26
|
+
ratio: NotRequired[str]
|
|
27
|
+
r"""Distribution ratio (e.g., 1:1 means one share of new company for each share of parent)"""
|
|
28
|
+
record_date: NotRequired[date]
|
|
29
|
+
r"""Date determining which shareholders receive the spinoff (YYYY-MM-DD format)"""
|
|
30
|
+
to_company_name: NotRequired[str]
|
|
31
|
+
r"""Name of the spun-off company"""
|
|
32
|
+
to_symbol: NotRequired[str]
|
|
33
|
+
r"""Ticker symbol of the spun-off company"""
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class Spinoff(BaseModel):
|
|
37
|
+
declared_date: Annotated[Optional[date], pydantic.Field(alias="declaredDate")] = (
|
|
38
|
+
None
|
|
39
|
+
)
|
|
40
|
+
r"""Date when the spinoff was announced (YYYY-MM-DD format)"""
|
|
41
|
+
|
|
42
|
+
description: Optional[str] = None
|
|
43
|
+
r"""Description of the spinoff transaction"""
|
|
44
|
+
|
|
45
|
+
ex_date: Annotated[Optional[date], pydantic.Field(alias="exDate")] = None
|
|
46
|
+
r"""Ex-date when the stock trades without spinoff rights (YYYY-MM-DD format)"""
|
|
47
|
+
|
|
48
|
+
from_company_name: Annotated[
|
|
49
|
+
Optional[str], pydantic.Field(alias="fromCompanyName")
|
|
50
|
+
] = None
|
|
51
|
+
r"""Name of the parent company"""
|
|
52
|
+
|
|
53
|
+
from_symbol: Annotated[Optional[str], pydantic.Field(alias="fromSymbol")] = None
|
|
54
|
+
r"""Ticker symbol of the parent company"""
|
|
55
|
+
|
|
56
|
+
payment_date: Annotated[Optional[date], pydantic.Field(alias="paymentDate")] = None
|
|
57
|
+
r"""Date when spun-off shares are distributed to shareholders (YYYY-MM-DD format)"""
|
|
58
|
+
|
|
59
|
+
ratio: Optional[str] = None
|
|
60
|
+
r"""Distribution ratio (e.g., 1:1 means one share of new company for each share of parent)"""
|
|
61
|
+
|
|
62
|
+
record_date: Annotated[Optional[date], pydantic.Field(alias="recordDate")] = None
|
|
63
|
+
r"""Date determining which shareholders receive the spinoff (YYYY-MM-DD format)"""
|
|
64
|
+
|
|
65
|
+
to_company_name: Annotated[Optional[str], pydantic.Field(alias="toCompanyName")] = (
|
|
66
|
+
None
|
|
67
|
+
)
|
|
68
|
+
r"""Name of the spun-off company"""
|
|
69
|
+
|
|
70
|
+
to_symbol: Annotated[Optional[str], pydantic.Field(alias="toSymbol")] = None
|
|
71
|
+
r"""Ticker symbol of the spun-off company"""
|
|
72
|
+
|
|
73
|
+
@model_serializer(mode="wrap")
|
|
74
|
+
def serialize_model(self, handler):
|
|
75
|
+
optional_fields = set(
|
|
76
|
+
[
|
|
77
|
+
"declaredDate",
|
|
78
|
+
"description",
|
|
79
|
+
"exDate",
|
|
80
|
+
"fromCompanyName",
|
|
81
|
+
"fromSymbol",
|
|
82
|
+
"paymentDate",
|
|
83
|
+
"ratio",
|
|
84
|
+
"recordDate",
|
|
85
|
+
"toCompanyName",
|
|
86
|
+
"toSymbol",
|
|
87
|
+
]
|
|
88
|
+
)
|
|
89
|
+
serialized = handler(self)
|
|
90
|
+
m = {}
|
|
91
|
+
|
|
92
|
+
for n, f in type(self).model_fields.items():
|
|
93
|
+
k = f.alias or n
|
|
94
|
+
val = serialized.get(k, serialized.get(n))
|
|
95
|
+
|
|
96
|
+
if val != UNSET_SENTINEL:
|
|
97
|
+
if val is not None or k not in optional_fields:
|
|
98
|
+
m[k] = val
|
|
99
|
+
|
|
100
|
+
return m
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
class SpinoffsResponseTypedDict(TypedDict):
|
|
104
|
+
r"""Response containing corporate spinoff events."""
|
|
105
|
+
|
|
106
|
+
spinoffs: NotRequired[List[SpinoffTypedDict]]
|
|
107
|
+
r"""Array of corporate spinoff events"""
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
class SpinoffsResponse(BaseModel):
|
|
111
|
+
r"""Response containing corporate spinoff events."""
|
|
112
|
+
|
|
113
|
+
spinoffs: Optional[List[Spinoff]] = None
|
|
114
|
+
r"""Array of corporate spinoff events"""
|
|
115
|
+
|
|
116
|
+
@model_serializer(mode="wrap")
|
|
117
|
+
def serialize_model(self, handler):
|
|
118
|
+
optional_fields = set(["spinoffs"])
|
|
119
|
+
serialized = handler(self)
|
|
120
|
+
m = {}
|
|
121
|
+
|
|
122
|
+
for n, f in type(self).model_fields.items():
|
|
123
|
+
k = f.alias or n
|
|
124
|
+
val = serialized.get(k, serialized.get(n))
|
|
125
|
+
|
|
126
|
+
if val != UNSET_SENTINEL:
|
|
127
|
+
if val is not None or k not in optional_fields:
|
|
128
|
+
m[k] = val
|
|
129
|
+
|
|
130
|
+
return m
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
try:
|
|
134
|
+
Spinoff.model_rebuild()
|
|
135
|
+
except NameError:
|
|
136
|
+
pass
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 8ae670ac8237
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .stockohlcbar import StockOhlcBar, StockOhlcBarTypedDict
|
|
6
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
7
|
+
import pydantic
|
|
8
|
+
from pydantic import model_serializer
|
|
9
|
+
from typing import List, Optional
|
|
10
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class StockAggregatesResponseTypedDict(TypedDict):
|
|
14
|
+
r"""Aggregate OHLC bars for a stock over a requested range and timespan, as returned by the upstream data provider."""
|
|
15
|
+
|
|
16
|
+
adjusted: NotRequired[bool]
|
|
17
|
+
r"""Whether or not the results are adjusted for splits"""
|
|
18
|
+
next_url: NotRequired[str]
|
|
19
|
+
r"""URL for next page of results"""
|
|
20
|
+
query_count: NotRequired[int]
|
|
21
|
+
r"""Number of results returned"""
|
|
22
|
+
request_id: NotRequired[str]
|
|
23
|
+
r"""Unique request ID"""
|
|
24
|
+
results: NotRequired[List[StockOhlcBarTypedDict]]
|
|
25
|
+
r"""Array of aggregate bars"""
|
|
26
|
+
results_count: NotRequired[int]
|
|
27
|
+
r"""Total number of results"""
|
|
28
|
+
status: NotRequired[str]
|
|
29
|
+
r"""Status string from the upstream data provider — typically `OK` for a successful response. Treat any other value as an error indicator alongside the HTTP status code."""
|
|
30
|
+
ticker: NotRequired[str]
|
|
31
|
+
r"""Stock ticker symbol, such as AAPL. Use the exact ticker for the company you want to research."""
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class StockAggregatesResponse(BaseModel):
|
|
35
|
+
r"""Aggregate OHLC bars for a stock over a requested range and timespan, as returned by the upstream data provider."""
|
|
36
|
+
|
|
37
|
+
adjusted: Optional[bool] = None
|
|
38
|
+
r"""Whether or not the results are adjusted for splits"""
|
|
39
|
+
|
|
40
|
+
next_url: Annotated[Optional[str], pydantic.Field(alias="nextUrl")] = None
|
|
41
|
+
r"""URL for next page of results"""
|
|
42
|
+
|
|
43
|
+
query_count: Annotated[Optional[int], pydantic.Field(alias="queryCount")] = None
|
|
44
|
+
r"""Number of results returned"""
|
|
45
|
+
|
|
46
|
+
request_id: Annotated[Optional[str], pydantic.Field(alias="requestId")] = None
|
|
47
|
+
r"""Unique request ID"""
|
|
48
|
+
|
|
49
|
+
results: Optional[List[StockOhlcBar]] = None
|
|
50
|
+
r"""Array of aggregate bars"""
|
|
51
|
+
|
|
52
|
+
results_count: Annotated[Optional[int], pydantic.Field(alias="resultsCount")] = None
|
|
53
|
+
r"""Total number of results"""
|
|
54
|
+
|
|
55
|
+
status: Optional[str] = None
|
|
56
|
+
r"""Status string from the upstream data provider — typically `OK` for a successful response. Treat any other value as an error indicator alongside the HTTP status code."""
|
|
57
|
+
|
|
58
|
+
ticker: Optional[str] = None
|
|
59
|
+
r"""Stock ticker symbol, such as AAPL. Use the exact ticker for the company you want to research."""
|
|
60
|
+
|
|
61
|
+
@model_serializer(mode="wrap")
|
|
62
|
+
def serialize_model(self, handler):
|
|
63
|
+
optional_fields = set(
|
|
64
|
+
[
|
|
65
|
+
"adjusted",
|
|
66
|
+
"nextUrl",
|
|
67
|
+
"queryCount",
|
|
68
|
+
"requestId",
|
|
69
|
+
"results",
|
|
70
|
+
"resultsCount",
|
|
71
|
+
"status",
|
|
72
|
+
"ticker",
|
|
73
|
+
]
|
|
74
|
+
)
|
|
75
|
+
serialized = handler(self)
|
|
76
|
+
m = {}
|
|
77
|
+
|
|
78
|
+
for n, f in type(self).model_fields.items():
|
|
79
|
+
k = f.alias or n
|
|
80
|
+
val = serialized.get(k, serialized.get(n))
|
|
81
|
+
|
|
82
|
+
if val != UNSET_SENTINEL:
|
|
83
|
+
if val is not None or k not in optional_fields:
|
|
84
|
+
m[k] = val
|
|
85
|
+
|
|
86
|
+
return m
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
try:
|
|
90
|
+
StockAggregatesResponse.model_rebuild()
|
|
91
|
+
except NameError:
|
|
92
|
+
pass
|