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,42 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: af79bfab8b77
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .financialsreporteddatawrapper import (
|
|
6
|
+
FinancialsReportedDataWrapper,
|
|
7
|
+
FinancialsReportedDataWrapperTypedDict,
|
|
8
|
+
)
|
|
9
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
10
|
+
from pydantic import model_serializer
|
|
11
|
+
from typing import Optional
|
|
12
|
+
from typing_extensions import NotRequired, TypedDict
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class FinancialsReportedResponseTypedDict(TypedDict):
|
|
16
|
+
r"""Response containing company financials as reported in SEC filings."""
|
|
17
|
+
|
|
18
|
+
data: NotRequired[FinancialsReportedDataWrapperTypedDict]
|
|
19
|
+
r"""Company identifiers and the list of reported SEC filings."""
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class FinancialsReportedResponse(BaseModel):
|
|
23
|
+
r"""Response containing company financials as reported in SEC filings."""
|
|
24
|
+
|
|
25
|
+
data: Optional[FinancialsReportedDataWrapper] = None
|
|
26
|
+
r"""Company identifiers and the list of reported SEC filings."""
|
|
27
|
+
|
|
28
|
+
@model_serializer(mode="wrap")
|
|
29
|
+
def serialize_model(self, handler):
|
|
30
|
+
optional_fields = set(["data"])
|
|
31
|
+
serialized = handler(self)
|
|
32
|
+
m = {}
|
|
33
|
+
|
|
34
|
+
for n, f in type(self).model_fields.items():
|
|
35
|
+
k = f.alias or n
|
|
36
|
+
val = serialized.get(k, serialized.get(n))
|
|
37
|
+
|
|
38
|
+
if val != UNSET_SENTINEL:
|
|
39
|
+
if val is not None or k not in optional_fields:
|
|
40
|
+
m[k] = val
|
|
41
|
+
|
|
42
|
+
return m
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: ce0134424625
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .revenuebreakdownentry import RevenueBreakdownEntry, RevenueBreakdownEntryTypedDict
|
|
6
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
7
|
+
from pydantic import model_serializer
|
|
8
|
+
from typing import List, Optional
|
|
9
|
+
from typing_extensions import NotRequired, TypedDict
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class FinancialsRevenueBreakdownDataWrapperTypedDict(TypedDict):
|
|
13
|
+
r"""Company identifiers and revenue breakdown entries from SEC filings."""
|
|
14
|
+
|
|
15
|
+
cik: NotRequired[str]
|
|
16
|
+
r"""Central Index Key assigned by the SEC."""
|
|
17
|
+
data: NotRequired[List[RevenueBreakdownEntryTypedDict]]
|
|
18
|
+
r"""Revenue breakdown entries by filing."""
|
|
19
|
+
symbol: NotRequired[str]
|
|
20
|
+
r"""Stock ticker symbol."""
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class FinancialsRevenueBreakdownDataWrapper(BaseModel):
|
|
24
|
+
r"""Company identifiers and revenue breakdown entries from SEC filings."""
|
|
25
|
+
|
|
26
|
+
cik: Optional[str] = None
|
|
27
|
+
r"""Central Index Key assigned by the SEC."""
|
|
28
|
+
|
|
29
|
+
data: Optional[List[RevenueBreakdownEntry]] = None
|
|
30
|
+
r"""Revenue breakdown entries by filing."""
|
|
31
|
+
|
|
32
|
+
symbol: Optional[str] = None
|
|
33
|
+
r"""Stock ticker symbol."""
|
|
34
|
+
|
|
35
|
+
@model_serializer(mode="wrap")
|
|
36
|
+
def serialize_model(self, handler):
|
|
37
|
+
optional_fields = set(["cik", "data", "symbol"])
|
|
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
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 49d2c6811694
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .financialsrevenuebreakdowndatawrapper import (
|
|
6
|
+
FinancialsRevenueBreakdownDataWrapper,
|
|
7
|
+
FinancialsRevenueBreakdownDataWrapperTypedDict,
|
|
8
|
+
)
|
|
9
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
10
|
+
from pydantic import model_serializer
|
|
11
|
+
from typing import Optional
|
|
12
|
+
from typing_extensions import NotRequired, TypedDict
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class FinancialsRevenueBreakdownResponseTypedDict(TypedDict):
|
|
16
|
+
r"""Response containing revenue breakdown data."""
|
|
17
|
+
|
|
18
|
+
data: NotRequired[FinancialsRevenueBreakdownDataWrapperTypedDict]
|
|
19
|
+
r"""Company identifiers and revenue breakdown entries from SEC filings."""
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class FinancialsRevenueBreakdownResponse(BaseModel):
|
|
23
|
+
r"""Response containing revenue breakdown data."""
|
|
24
|
+
|
|
25
|
+
data: Optional[FinancialsRevenueBreakdownDataWrapper] = None
|
|
26
|
+
r"""Company identifiers and revenue breakdown entries from SEC filings."""
|
|
27
|
+
|
|
28
|
+
@model_serializer(mode="wrap")
|
|
29
|
+
def serialize_model(self, handler):
|
|
30
|
+
optional_fields = set(["data"])
|
|
31
|
+
serialized = handler(self)
|
|
32
|
+
m = {}
|
|
33
|
+
|
|
34
|
+
for n, f in type(self).model_fields.items():
|
|
35
|
+
k = f.alias or n
|
|
36
|
+
val = serialized.get(k, serialized.get(n))
|
|
37
|
+
|
|
38
|
+
if val != UNSET_SENTINEL:
|
|
39
|
+
if val is not None or k not in optional_fields:
|
|
40
|
+
m[k] = val
|
|
41
|
+
|
|
42
|
+
return m
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: e31053f3e45e
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .financialstatement import FinancialStatement, FinancialStatementTypedDict
|
|
6
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
7
|
+
from pydantic import model_serializer
|
|
8
|
+
from typing import List, Optional
|
|
9
|
+
from typing_extensions import NotRequired, TypedDict
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class FinancialsStatementsDataWrapperTypedDict(TypedDict):
|
|
13
|
+
r"""Symbol and list of standardized financial statements by period."""
|
|
14
|
+
|
|
15
|
+
financials: NotRequired[List[FinancialStatementTypedDict]]
|
|
16
|
+
r"""Array of financial statements for different periods"""
|
|
17
|
+
symbol: NotRequired[str]
|
|
18
|
+
r"""Stock ticker symbol"""
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class FinancialsStatementsDataWrapper(BaseModel):
|
|
22
|
+
r"""Symbol and list of standardized financial statements by period."""
|
|
23
|
+
|
|
24
|
+
financials: Optional[List[FinancialStatement]] = None
|
|
25
|
+
r"""Array of financial statements for different periods"""
|
|
26
|
+
|
|
27
|
+
symbol: Optional[str] = None
|
|
28
|
+
r"""Stock ticker symbol"""
|
|
29
|
+
|
|
30
|
+
@model_serializer(mode="wrap")
|
|
31
|
+
def serialize_model(self, handler):
|
|
32
|
+
optional_fields = set(["financials", "symbol"])
|
|
33
|
+
serialized = handler(self)
|
|
34
|
+
m = {}
|
|
35
|
+
|
|
36
|
+
for n, f in type(self).model_fields.items():
|
|
37
|
+
k = f.alias or n
|
|
38
|
+
val = serialized.get(k, serialized.get(n))
|
|
39
|
+
|
|
40
|
+
if val != UNSET_SENTINEL:
|
|
41
|
+
if val is not None or k not in optional_fields:
|
|
42
|
+
m[k] = val
|
|
43
|
+
|
|
44
|
+
return m
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: ea55f9975766
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .financialsstatementsdatawrapper import (
|
|
6
|
+
FinancialsStatementsDataWrapper,
|
|
7
|
+
FinancialsStatementsDataWrapperTypedDict,
|
|
8
|
+
)
|
|
9
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
10
|
+
from pydantic import model_serializer
|
|
11
|
+
from typing import Optional
|
|
12
|
+
from typing_extensions import NotRequired, TypedDict
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class FinancialsStatementsResponseTypedDict(TypedDict):
|
|
16
|
+
r"""Response containing standardized financial statements."""
|
|
17
|
+
|
|
18
|
+
data: NotRequired[FinancialsStatementsDataWrapperTypedDict]
|
|
19
|
+
r"""Symbol and list of standardized financial statements by period."""
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class FinancialsStatementsResponse(BaseModel):
|
|
23
|
+
r"""Response containing standardized financial statements."""
|
|
24
|
+
|
|
25
|
+
data: Optional[FinancialsStatementsDataWrapper] = None
|
|
26
|
+
r"""Symbol and list of standardized financial statements by period."""
|
|
27
|
+
|
|
28
|
+
@model_serializer(mode="wrap")
|
|
29
|
+
def serialize_model(self, handler):
|
|
30
|
+
optional_fields = set(["data"])
|
|
31
|
+
serialized = handler(self)
|
|
32
|
+
m = {}
|
|
33
|
+
|
|
34
|
+
for n, f in type(self).model_fields.items():
|
|
35
|
+
k = f.alias or n
|
|
36
|
+
val = serialized.get(k, serialized.get(n))
|
|
37
|
+
|
|
38
|
+
if val != UNSET_SENTINEL:
|
|
39
|
+
if val is not None or k not in optional_fields:
|
|
40
|
+
m[k] = val
|
|
41
|
+
|
|
42
|
+
return m
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 3a2ecccc9209
|
|
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 Optional
|
|
9
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class FinancialStatementTypedDict(TypedDict):
|
|
13
|
+
r"""Standardized income statement figures for a single reporting period."""
|
|
14
|
+
|
|
15
|
+
cost_of_goods_sold: NotRequired[float]
|
|
16
|
+
r"""Direct costs attributable to production of goods sold"""
|
|
17
|
+
diluted_average_shares_outstanding: NotRequired[float]
|
|
18
|
+
r"""Average number of shares outstanding including dilutive securities"""
|
|
19
|
+
diluted_eps: NotRequired[float]
|
|
20
|
+
r"""Earnings per share assuming dilution from convertible securities"""
|
|
21
|
+
ebit: NotRequired[float]
|
|
22
|
+
r"""Earnings Before Interest and Taxes"""
|
|
23
|
+
gross_income: NotRequired[float]
|
|
24
|
+
r"""Revenue minus cost of goods sold"""
|
|
25
|
+
interest_income_expense: NotRequired[float]
|
|
26
|
+
r"""Net interest income or expense from debt and investments"""
|
|
27
|
+
net_income: NotRequired[float]
|
|
28
|
+
r"""Total profit after all expenses and taxes"""
|
|
29
|
+
net_income_after_taxes: NotRequired[float]
|
|
30
|
+
r"""Net income after deducting income taxes"""
|
|
31
|
+
non_recurring_items: NotRequired[float]
|
|
32
|
+
r"""One-time or unusual items affecting income"""
|
|
33
|
+
period: NotRequired[str]
|
|
34
|
+
r"""Reporting period in YYYY-MM-DD format"""
|
|
35
|
+
pretax_income: NotRequired[float]
|
|
36
|
+
r"""Income before provision for income taxes"""
|
|
37
|
+
provisionfor_income_taxes: NotRequired[float]
|
|
38
|
+
r"""Estimated income tax expense for the period"""
|
|
39
|
+
research_development: NotRequired[float]
|
|
40
|
+
r"""Expenses for research and development activities"""
|
|
41
|
+
revenue: NotRequired[float]
|
|
42
|
+
r"""Total revenue from operations"""
|
|
43
|
+
sga_expense: NotRequired[float]
|
|
44
|
+
r"""Selling, General, and Administrative expenses"""
|
|
45
|
+
total_operating_expense: NotRequired[float]
|
|
46
|
+
r"""Sum of all operating expenses"""
|
|
47
|
+
total_other_income_expense_net: NotRequired[float]
|
|
48
|
+
r"""Net of other income and expenses not related to operations"""
|
|
49
|
+
year: NotRequired[int]
|
|
50
|
+
r"""Fiscal year of the financial statement"""
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
class FinancialStatement(BaseModel):
|
|
54
|
+
r"""Standardized income statement figures for a single reporting period."""
|
|
55
|
+
|
|
56
|
+
cost_of_goods_sold: Annotated[
|
|
57
|
+
Optional[float], pydantic.Field(alias="costOfGoodsSold")
|
|
58
|
+
] = None
|
|
59
|
+
r"""Direct costs attributable to production of goods sold"""
|
|
60
|
+
|
|
61
|
+
diluted_average_shares_outstanding: Annotated[
|
|
62
|
+
Optional[float], pydantic.Field(alias="dilutedAverageSharesOutstanding")
|
|
63
|
+
] = None
|
|
64
|
+
r"""Average number of shares outstanding including dilutive securities"""
|
|
65
|
+
|
|
66
|
+
diluted_eps: Annotated[Optional[float], pydantic.Field(alias="dilutedEPS")] = None
|
|
67
|
+
r"""Earnings per share assuming dilution from convertible securities"""
|
|
68
|
+
|
|
69
|
+
ebit: Optional[float] = None
|
|
70
|
+
r"""Earnings Before Interest and Taxes"""
|
|
71
|
+
|
|
72
|
+
gross_income: Annotated[Optional[float], pydantic.Field(alias="grossIncome")] = None
|
|
73
|
+
r"""Revenue minus cost of goods sold"""
|
|
74
|
+
|
|
75
|
+
interest_income_expense: Annotated[
|
|
76
|
+
Optional[float], pydantic.Field(alias="interestIncomeExpense")
|
|
77
|
+
] = None
|
|
78
|
+
r"""Net interest income or expense from debt and investments"""
|
|
79
|
+
|
|
80
|
+
net_income: Annotated[Optional[float], pydantic.Field(alias="netIncome")] = None
|
|
81
|
+
r"""Total profit after all expenses and taxes"""
|
|
82
|
+
|
|
83
|
+
net_income_after_taxes: Annotated[
|
|
84
|
+
Optional[float], pydantic.Field(alias="netIncomeAfterTaxes")
|
|
85
|
+
] = None
|
|
86
|
+
r"""Net income after deducting income taxes"""
|
|
87
|
+
|
|
88
|
+
non_recurring_items: Annotated[
|
|
89
|
+
Optional[float], pydantic.Field(alias="nonRecurringItems")
|
|
90
|
+
] = None
|
|
91
|
+
r"""One-time or unusual items affecting income"""
|
|
92
|
+
|
|
93
|
+
period: Optional[str] = None
|
|
94
|
+
r"""Reporting period in YYYY-MM-DD format"""
|
|
95
|
+
|
|
96
|
+
pretax_income: Annotated[Optional[float], pydantic.Field(alias="pretaxIncome")] = (
|
|
97
|
+
None
|
|
98
|
+
)
|
|
99
|
+
r"""Income before provision for income taxes"""
|
|
100
|
+
|
|
101
|
+
provisionfor_income_taxes: Annotated[
|
|
102
|
+
Optional[float], pydantic.Field(alias="provisionforIncomeTaxes")
|
|
103
|
+
] = None
|
|
104
|
+
r"""Estimated income tax expense for the period"""
|
|
105
|
+
|
|
106
|
+
research_development: Annotated[
|
|
107
|
+
Optional[float], pydantic.Field(alias="researchDevelopment")
|
|
108
|
+
] = None
|
|
109
|
+
r"""Expenses for research and development activities"""
|
|
110
|
+
|
|
111
|
+
revenue: Optional[float] = None
|
|
112
|
+
r"""Total revenue from operations"""
|
|
113
|
+
|
|
114
|
+
sga_expense: Annotated[Optional[float], pydantic.Field(alias="sgaExpense")] = None
|
|
115
|
+
r"""Selling, General, and Administrative expenses"""
|
|
116
|
+
|
|
117
|
+
total_operating_expense: Annotated[
|
|
118
|
+
Optional[float], pydantic.Field(alias="totalOperatingExpense")
|
|
119
|
+
] = None
|
|
120
|
+
r"""Sum of all operating expenses"""
|
|
121
|
+
|
|
122
|
+
total_other_income_expense_net: Annotated[
|
|
123
|
+
Optional[float], pydantic.Field(alias="totalOtherIncomeExpenseNet")
|
|
124
|
+
] = None
|
|
125
|
+
r"""Net of other income and expenses not related to operations"""
|
|
126
|
+
|
|
127
|
+
year: Optional[int] = None
|
|
128
|
+
r"""Fiscal year of the financial statement"""
|
|
129
|
+
|
|
130
|
+
@model_serializer(mode="wrap")
|
|
131
|
+
def serialize_model(self, handler):
|
|
132
|
+
optional_fields = set(
|
|
133
|
+
[
|
|
134
|
+
"costOfGoodsSold",
|
|
135
|
+
"dilutedAverageSharesOutstanding",
|
|
136
|
+
"dilutedEPS",
|
|
137
|
+
"ebit",
|
|
138
|
+
"grossIncome",
|
|
139
|
+
"interestIncomeExpense",
|
|
140
|
+
"netIncome",
|
|
141
|
+
"netIncomeAfterTaxes",
|
|
142
|
+
"nonRecurringItems",
|
|
143
|
+
"period",
|
|
144
|
+
"pretaxIncome",
|
|
145
|
+
"provisionforIncomeTaxes",
|
|
146
|
+
"researchDevelopment",
|
|
147
|
+
"revenue",
|
|
148
|
+
"sgaExpense",
|
|
149
|
+
"totalOperatingExpense",
|
|
150
|
+
"totalOtherIncomeExpenseNet",
|
|
151
|
+
"year",
|
|
152
|
+
]
|
|
153
|
+
)
|
|
154
|
+
serialized = handler(self)
|
|
155
|
+
m = {}
|
|
156
|
+
|
|
157
|
+
for n, f in type(self).model_fields.items():
|
|
158
|
+
k = f.alias or n
|
|
159
|
+
val = serialized.get(k, serialized.get(n))
|
|
160
|
+
|
|
161
|
+
if val != UNSET_SENTINEL:
|
|
162
|
+
if val is not None or k not in optional_fields:
|
|
163
|
+
m[k] = val
|
|
164
|
+
|
|
165
|
+
return m
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
try:
|
|
169
|
+
FinancialStatement.model_rebuild()
|
|
170
|
+
except NameError:
|
|
171
|
+
pass
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: aa03517a0224
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from enum import Enum
|
|
6
|
+
from finance_dev import utils
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class FinancialStatementType(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
10
|
+
r"""Statement: bs (balance sheet), ic (income), cf (cash flow)."""
|
|
11
|
+
|
|
12
|
+
BS = "bs"
|
|
13
|
+
IC = "ic"
|
|
14
|
+
CF = "cf"
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 550ebfcc960d
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .accountbalancev2 import AccountBalanceV2, AccountBalanceV2TypedDict
|
|
6
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
7
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
8
|
+
from finance_dev.utils import FieldMetadata, PathParamMetadata
|
|
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 GetAccountBalanceRequestTypedDict(TypedDict):
|
|
16
|
+
id: str
|
|
17
|
+
r"""Account whose balance you want to read. Enter the account ID from `GET /v1/users/me/accounts`."""
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetAccountBalanceRequest(BaseModel):
|
|
21
|
+
id: Annotated[
|
|
22
|
+
str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
|
|
23
|
+
]
|
|
24
|
+
r"""Account whose balance you want to read. Enter the account ID from `GET /v1/users/me/accounts`."""
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class GetAccountBalanceResponseTypedDict(TypedDict):
|
|
28
|
+
http_meta: HTTPMetadataTypedDict
|
|
29
|
+
account_balance_v2: NotRequired[AccountBalanceV2TypedDict]
|
|
30
|
+
r"""Account balance retrieved successfully"""
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class GetAccountBalanceResponse(BaseModel):
|
|
34
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
35
|
+
|
|
36
|
+
account_balance_v2: Optional[AccountBalanceV2] = None
|
|
37
|
+
r"""Account balance retrieved successfully"""
|
|
38
|
+
|
|
39
|
+
@model_serializer(mode="wrap")
|
|
40
|
+
def serialize_model(self, handler):
|
|
41
|
+
optional_fields = set(["AccountBalanceV2"])
|
|
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,53 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: c57fa9cd8235
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .getpositionsresponse import GetPositionsResponse, GetPositionsResponseTypedDict
|
|
6
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
7
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
8
|
+
from finance_dev.utils import FieldMetadata, PathParamMetadata
|
|
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 GetAccountPositionsRequestTypedDict(TypedDict):
|
|
16
|
+
id: str
|
|
17
|
+
r"""Account whose positions you want to read. Enter the account ID from [User Accounts](/api-reference/accounts/user-accounts)."""
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetAccountPositionsRequest(BaseModel):
|
|
21
|
+
id: Annotated[
|
|
22
|
+
str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
|
|
23
|
+
]
|
|
24
|
+
r"""Account whose positions you want to read. Enter the account ID from [User Accounts](/api-reference/accounts/user-accounts)."""
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class GetAccountPositionsResponseTypedDict(TypedDict):
|
|
28
|
+
http_meta: HTTPMetadataTypedDict
|
|
29
|
+
get_positions_response: NotRequired[GetPositionsResponseTypedDict]
|
|
30
|
+
r"""Account positions retrieved successfully"""
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class GetAccountPositionsResponse(BaseModel):
|
|
34
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
35
|
+
|
|
36
|
+
get_positions_response: Optional[GetPositionsResponse] = None
|
|
37
|
+
r"""Account positions retrieved successfully"""
|
|
38
|
+
|
|
39
|
+
@model_serializer(mode="wrap")
|
|
40
|
+
def serialize_model(self, handler):
|
|
41
|
+
optional_fields = set(["GetPositionsResponse"])
|
|
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,22 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 05035fa3859d
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .accountitem import AccountItem, AccountItemTypedDict
|
|
6
|
+
from finance_dev.types import BaseModel
|
|
7
|
+
from typing import List
|
|
8
|
+
from typing_extensions import TypedDict
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class GetAccountsResponseTypedDict(TypedDict):
|
|
12
|
+
r"""Response for GET /v2/users/me/accounts"""
|
|
13
|
+
|
|
14
|
+
accounts: List[AccountItemTypedDict]
|
|
15
|
+
r"""Trading accounts linked to the authenticated user"""
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class GetAccountsResponse(BaseModel):
|
|
19
|
+
r"""Response for GET /v2/users/me/accounts"""
|
|
20
|
+
|
|
21
|
+
accounts: List[AccountItem]
|
|
22
|
+
r"""Trading accounts linked to the authenticated user"""
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 21ba2fab1797
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .aggregatetechnicalindicatorsresponse import (
|
|
6
|
+
AggregateTechnicalIndicatorsResponse,
|
|
7
|
+
AggregateTechnicalIndicatorsResponseTypedDict,
|
|
8
|
+
)
|
|
9
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
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 GetAggregateTechnicalIndicatorsResolution(
|
|
21
|
+
str, Enum, metaclass=utils.OpenEnumMeta
|
|
22
|
+
):
|
|
23
|
+
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`."""
|
|
24
|
+
|
|
25
|
+
ONE = "1"
|
|
26
|
+
FIVE = "5"
|
|
27
|
+
FIFTEEN = "15"
|
|
28
|
+
THIRTY = "30"
|
|
29
|
+
SIXTY = "60"
|
|
30
|
+
D = "D"
|
|
31
|
+
W = "W"
|
|
32
|
+
M = "M"
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class GetAggregateTechnicalIndicatorsRequestTypedDict(TypedDict):
|
|
36
|
+
symbol: str
|
|
37
|
+
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`."""
|
|
38
|
+
resolution: GetAggregateTechnicalIndicatorsResolution
|
|
39
|
+
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`."""
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
class GetAggregateTechnicalIndicatorsRequest(BaseModel):
|
|
43
|
+
symbol: Annotated[
|
|
44
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
45
|
+
]
|
|
46
|
+
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`."""
|
|
47
|
+
|
|
48
|
+
resolution: Annotated[
|
|
49
|
+
GetAggregateTechnicalIndicatorsResolution,
|
|
50
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
51
|
+
]
|
|
52
|
+
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`."""
|
|
53
|
+
|
|
54
|
+
@field_serializer("resolution")
|
|
55
|
+
def serialize_resolution(self, value):
|
|
56
|
+
if isinstance(value, str):
|
|
57
|
+
try:
|
|
58
|
+
return models.GetAggregateTechnicalIndicatorsResolution(value)
|
|
59
|
+
except ValueError:
|
|
60
|
+
return value
|
|
61
|
+
return value
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
class GetAggregateTechnicalIndicatorsResponseTypedDict(TypedDict):
|
|
65
|
+
http_meta: HTTPMetadataTypedDict
|
|
66
|
+
aggregate_technical_indicators_response: NotRequired[
|
|
67
|
+
AggregateTechnicalIndicatorsResponseTypedDict
|
|
68
|
+
]
|
|
69
|
+
r"""Successful response"""
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
class GetAggregateTechnicalIndicatorsResponse(BaseModel):
|
|
73
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
74
|
+
|
|
75
|
+
aggregate_technical_indicators_response: Optional[
|
|
76
|
+
AggregateTechnicalIndicatorsResponse
|
|
77
|
+
] = None
|
|
78
|
+
r"""Successful response"""
|
|
79
|
+
|
|
80
|
+
@model_serializer(mode="wrap")
|
|
81
|
+
def serialize_model(self, handler):
|
|
82
|
+
optional_fields = set(["AggregateTechnicalIndicatorsResponse"])
|
|
83
|
+
serialized = handler(self)
|
|
84
|
+
m = {}
|
|
85
|
+
|
|
86
|
+
for n, f in type(self).model_fields.items():
|
|
87
|
+
k = f.alias or n
|
|
88
|
+
val = serialized.get(k, serialized.get(n))
|
|
89
|
+
|
|
90
|
+
if val != UNSET_SENTINEL:
|
|
91
|
+
if val is not None or k not in optional_fields:
|
|
92
|
+
m[k] = val
|
|
93
|
+
|
|
94
|
+
return m
|