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,56 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: e7d038e6e1d7
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .getequitydetailsresponse import (
|
|
6
|
+
GetEquityDetailsResponse,
|
|
7
|
+
GetEquityDetailsResponseTypedDict,
|
|
8
|
+
)
|
|
9
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
10
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
11
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
12
|
+
import pydantic
|
|
13
|
+
from pydantic import model_serializer
|
|
14
|
+
from typing import Optional
|
|
15
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class GetEquityDetailsRequestTypedDict(TypedDict):
|
|
19
|
+
symbols: str
|
|
20
|
+
r"""One or more uppercase ticker symbols, separated by commas (e.g. `AAPL,MSFT,GOOGL`). Send at least one. The response order matches the request order."""
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class GetEquityDetailsRequest(BaseModel):
|
|
24
|
+
symbols: Annotated[
|
|
25
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
26
|
+
]
|
|
27
|
+
r"""One or more uppercase ticker symbols, separated by commas (e.g. `AAPL,MSFT,GOOGL`). Send at least one. The response order matches the request order."""
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class GetEquityDetailsResponseResponseTypedDict(TypedDict):
|
|
31
|
+
http_meta: HTTPMetadataTypedDict
|
|
32
|
+
get_equity_details_response: NotRequired[GetEquityDetailsResponseTypedDict]
|
|
33
|
+
r"""`data` holds per-symbol objects matching `EquityDetailsDTO`. Omitted keys were empty in cache. See schema for the `errors` array shape when a symbol cannot be returned."""
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class GetEquityDetailsResponseResponse(BaseModel):
|
|
37
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
38
|
+
|
|
39
|
+
get_equity_details_response: Optional[GetEquityDetailsResponse] = None
|
|
40
|
+
r"""`data` holds per-symbol objects matching `EquityDetailsDTO`. Omitted keys were empty in cache. See schema for the `errors` array shape when a symbol cannot be returned."""
|
|
41
|
+
|
|
42
|
+
@model_serializer(mode="wrap")
|
|
43
|
+
def serialize_model(self, handler):
|
|
44
|
+
optional_fields = set(["GetEquityDetailsResponse"])
|
|
45
|
+
serialized = handler(self)
|
|
46
|
+
m = {}
|
|
47
|
+
|
|
48
|
+
for n, f in type(self).model_fields.items():
|
|
49
|
+
k = f.alias or n
|
|
50
|
+
val = serialized.get(k, serialized.get(n))
|
|
51
|
+
|
|
52
|
+
if val != UNSET_SENTINEL:
|
|
53
|
+
if val is not None or k not in optional_fields:
|
|
54
|
+
m[k] = val
|
|
55
|
+
|
|
56
|
+
return m
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: a6d294e602bf
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .equitydetailsdto import EquityDetailsDTO, EquityDetailsDTOTypedDict
|
|
6
|
+
from .symbolerror import SymbolError, SymbolErrorTypedDict
|
|
7
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
8
|
+
from pydantic import model_serializer
|
|
9
|
+
from typing import List, Optional
|
|
10
|
+
from typing_extensions import NotRequired, TypedDict
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class GetEquityDetailsResponseTypedDict(TypedDict):
|
|
14
|
+
r"""Wrapper for GET /v1/marketdata/equities/details: `data` for successful symbols, `errors` when applicable."""
|
|
15
|
+
|
|
16
|
+
data: NotRequired[List[EquityDetailsDTOTypedDict]]
|
|
17
|
+
r"""Symbols that returned a non-empty snapshot with valid quote data"""
|
|
18
|
+
errors: NotRequired[List[SymbolErrorTypedDict]]
|
|
19
|
+
r"""Per-symbol error entries when a requested symbol cannot be included in `data`"""
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class GetEquityDetailsResponse(BaseModel):
|
|
23
|
+
r"""Wrapper for GET /v1/marketdata/equities/details: `data` for successful symbols, `errors` when applicable."""
|
|
24
|
+
|
|
25
|
+
data: Optional[List[EquityDetailsDTO]] = None
|
|
26
|
+
r"""Symbols that returned a non-empty snapshot with valid quote data"""
|
|
27
|
+
|
|
28
|
+
errors: Optional[List[SymbolError]] = None
|
|
29
|
+
r"""Per-symbol error entries when a requested symbol cannot be included in `data`"""
|
|
30
|
+
|
|
31
|
+
@model_serializer(mode="wrap")
|
|
32
|
+
def serialize_model(self, handler):
|
|
33
|
+
optional_fields = set(["data", "errors"])
|
|
34
|
+
serialized = handler(self)
|
|
35
|
+
m = {}
|
|
36
|
+
|
|
37
|
+
for n, f in type(self).model_fields.items():
|
|
38
|
+
k = f.alias or n
|
|
39
|
+
val = serialized.get(k, serialized.get(n))
|
|
40
|
+
|
|
41
|
+
if val != UNSET_SENTINEL:
|
|
42
|
+
if val is not None or k not in optional_fields:
|
|
43
|
+
m[k] = val
|
|
44
|
+
|
|
45
|
+
return m
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 14327e746f73
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .etblistresponse import EtbListResponse, EtbListResponseTypedDict
|
|
6
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
7
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
8
|
+
import pydantic
|
|
9
|
+
from pydantic import model_serializer
|
|
10
|
+
from typing import Optional
|
|
11
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class GetEtbListResponseTypedDict(TypedDict):
|
|
15
|
+
http_meta: HTTPMetadataTypedDict
|
|
16
|
+
etb_list_response: NotRequired[EtbListResponseTypedDict]
|
|
17
|
+
r"""The borrowable universe currently in effect. An empty list is a valid 200: before the day's list has loaded this returns `{\"symbols\": [], \"count\": 0}` rather than an error, which means the list is not loaded yet — it must not be read as \"nothing is borrowable\". No caching headers are set; cache for the trading day and refresh after the next market open."""
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetEtbListResponse(BaseModel):
|
|
21
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
22
|
+
|
|
23
|
+
etb_list_response: Optional[EtbListResponse] = None
|
|
24
|
+
r"""The borrowable universe currently in effect. An empty list is a valid 200: before the day's list has loaded this returns `{\"symbols\": [], \"count\": 0}` rather than an error, which means the list is not loaded yet — it must not be read as \"nothing is borrowable\". No caching headers are set; cache for the trading day and refresh after the next market open."""
|
|
25
|
+
|
|
26
|
+
@model_serializer(mode="wrap")
|
|
27
|
+
def serialize_model(self, handler):
|
|
28
|
+
optional_fields = set(["EtbListResponse"])
|
|
29
|
+
serialized = handler(self)
|
|
30
|
+
m = {}
|
|
31
|
+
|
|
32
|
+
for n, f in type(self).model_fields.items():
|
|
33
|
+
k = f.alias or n
|
|
34
|
+
val = serialized.get(k, serialized.get(n))
|
|
35
|
+
|
|
36
|
+
if val != UNSET_SENTINEL:
|
|
37
|
+
if val is not None or k not in optional_fields:
|
|
38
|
+
m[k] = val
|
|
39
|
+
|
|
40
|
+
return m
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 08ebf4ede86a
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .etfcountryallocationresponse import (
|
|
6
|
+
EtfCountryAllocationResponse,
|
|
7
|
+
EtfCountryAllocationResponseTypedDict,
|
|
8
|
+
)
|
|
9
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
10
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
11
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
12
|
+
import pydantic
|
|
13
|
+
from pydantic import model_serializer
|
|
14
|
+
from typing import Optional
|
|
15
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class GetEtfCountryAllocationRequestTypedDict(TypedDict):
|
|
19
|
+
symbol: str
|
|
20
|
+
r"""ETF ticker to query. Send the plain uppercase symbol, e.g. `SPY`, `QQQ`, `IWM`."""
|
|
21
|
+
isin: NotRequired[str]
|
|
22
|
+
r"""ISIN identifier — the 12-character International Securities Identification Number for the instrument (e.g. `US0378331005` for Apple). Provide this instead of `symbol` when you have an ISIN."""
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class GetEtfCountryAllocationRequest(BaseModel):
|
|
26
|
+
symbol: Annotated[
|
|
27
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
28
|
+
]
|
|
29
|
+
r"""ETF ticker to query. Send the plain uppercase symbol, e.g. `SPY`, `QQQ`, `IWM`."""
|
|
30
|
+
|
|
31
|
+
isin: Annotated[
|
|
32
|
+
Optional[str],
|
|
33
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
34
|
+
] = None
|
|
35
|
+
r"""ISIN identifier — the 12-character International Securities Identification Number for the instrument (e.g. `US0378331005` for Apple). Provide this instead of `symbol` when you have an ISIN."""
|
|
36
|
+
|
|
37
|
+
@model_serializer(mode="wrap")
|
|
38
|
+
def serialize_model(self, handler):
|
|
39
|
+
optional_fields = set(["isin"])
|
|
40
|
+
serialized = handler(self)
|
|
41
|
+
m = {}
|
|
42
|
+
|
|
43
|
+
for n, f in type(self).model_fields.items():
|
|
44
|
+
k = f.alias or n
|
|
45
|
+
val = serialized.get(k, serialized.get(n))
|
|
46
|
+
|
|
47
|
+
if val != UNSET_SENTINEL:
|
|
48
|
+
if val is not None or k not in optional_fields:
|
|
49
|
+
m[k] = val
|
|
50
|
+
|
|
51
|
+
return m
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
class GetEtfCountryAllocationResponseTypedDict(TypedDict):
|
|
55
|
+
http_meta: HTTPMetadataTypedDict
|
|
56
|
+
etf_country_allocation_response: NotRequired[EtfCountryAllocationResponseTypedDict]
|
|
57
|
+
r"""Successful response"""
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
class GetEtfCountryAllocationResponse(BaseModel):
|
|
61
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
62
|
+
|
|
63
|
+
etf_country_allocation_response: Optional[EtfCountryAllocationResponse] = None
|
|
64
|
+
r"""Successful response"""
|
|
65
|
+
|
|
66
|
+
@model_serializer(mode="wrap")
|
|
67
|
+
def serialize_model(self, handler):
|
|
68
|
+
optional_fields = set(["EtfCountryAllocationResponse"])
|
|
69
|
+
serialized = handler(self)
|
|
70
|
+
m = {}
|
|
71
|
+
|
|
72
|
+
for n, f in type(self).model_fields.items():
|
|
73
|
+
k = f.alias or n
|
|
74
|
+
val = serialized.get(k, serialized.get(n))
|
|
75
|
+
|
|
76
|
+
if val != UNSET_SENTINEL:
|
|
77
|
+
if val is not None or k not in optional_fields:
|
|
78
|
+
m[k] = val
|
|
79
|
+
|
|
80
|
+
return m
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 568d648ecd0c
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .etfholdingsresponse import EtfHoldingsResponse, EtfHoldingsResponseTypedDict
|
|
6
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
7
|
+
from datetime import date
|
|
8
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
9
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
10
|
+
import pydantic
|
|
11
|
+
from pydantic import model_serializer
|
|
12
|
+
from typing import Optional
|
|
13
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class GetEtfHoldingsRequestTypedDict(TypedDict):
|
|
17
|
+
symbol: NotRequired[str]
|
|
18
|
+
r"""ETF ticker to filter by. Send the plain uppercase symbol (e.g. `SPY`). Provide either `symbol` or `isin`."""
|
|
19
|
+
isin: NotRequired[str]
|
|
20
|
+
r"""ISIN identifier — the 12-character International Securities Identification Number for the instrument (e.g. `US0378331005` for Apple). Provide this instead of `symbol` when you have an ISIN."""
|
|
21
|
+
skip: NotRequired[int]
|
|
22
|
+
r"""(Optional) Number of records to skip for pagination"""
|
|
23
|
+
date_: NotRequired[date]
|
|
24
|
+
r"""(Optional) Date for historical holdings (YYYY-MM-DD)"""
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class GetEtfHoldingsRequest(BaseModel):
|
|
28
|
+
symbol: Annotated[
|
|
29
|
+
Optional[str],
|
|
30
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
31
|
+
] = None
|
|
32
|
+
r"""ETF ticker to filter by. Send the plain uppercase symbol (e.g. `SPY`). Provide either `symbol` or `isin`."""
|
|
33
|
+
|
|
34
|
+
isin: Annotated[
|
|
35
|
+
Optional[str],
|
|
36
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
37
|
+
] = None
|
|
38
|
+
r"""ISIN identifier — the 12-character International Securities Identification Number for the instrument (e.g. `US0378331005` for Apple). Provide this instead of `symbol` when you have an ISIN."""
|
|
39
|
+
|
|
40
|
+
skip: Annotated[
|
|
41
|
+
Optional[int],
|
|
42
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
43
|
+
] = None
|
|
44
|
+
r"""(Optional) Number of records to skip for pagination"""
|
|
45
|
+
|
|
46
|
+
date_: Annotated[
|
|
47
|
+
Optional[date],
|
|
48
|
+
pydantic.Field(alias="date"),
|
|
49
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
50
|
+
] = None
|
|
51
|
+
r"""(Optional) Date for historical holdings (YYYY-MM-DD)"""
|
|
52
|
+
|
|
53
|
+
@model_serializer(mode="wrap")
|
|
54
|
+
def serialize_model(self, handler):
|
|
55
|
+
optional_fields = set(["symbol", "isin", "skip", "date"])
|
|
56
|
+
serialized = handler(self)
|
|
57
|
+
m = {}
|
|
58
|
+
|
|
59
|
+
for n, f in type(self).model_fields.items():
|
|
60
|
+
k = f.alias or n
|
|
61
|
+
val = serialized.get(k, serialized.get(n))
|
|
62
|
+
|
|
63
|
+
if val != UNSET_SENTINEL:
|
|
64
|
+
if val is not None or k not in optional_fields:
|
|
65
|
+
m[k] = val
|
|
66
|
+
|
|
67
|
+
return m
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
class GetEtfHoldingsResponseTypedDict(TypedDict):
|
|
71
|
+
http_meta: HTTPMetadataTypedDict
|
|
72
|
+
etf_holdings_response: NotRequired[EtfHoldingsResponseTypedDict]
|
|
73
|
+
r"""ETF holdings."""
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
class GetEtfHoldingsResponse(BaseModel):
|
|
77
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
78
|
+
|
|
79
|
+
etf_holdings_response: Optional[EtfHoldingsResponse] = None
|
|
80
|
+
r"""ETF holdings."""
|
|
81
|
+
|
|
82
|
+
@model_serializer(mode="wrap")
|
|
83
|
+
def serialize_model(self, handler):
|
|
84
|
+
optional_fields = set(["EtfHoldingsResponse"])
|
|
85
|
+
serialized = handler(self)
|
|
86
|
+
m = {}
|
|
87
|
+
|
|
88
|
+
for n, f in type(self).model_fields.items():
|
|
89
|
+
k = f.alias or n
|
|
90
|
+
val = serialized.get(k, serialized.get(n))
|
|
91
|
+
|
|
92
|
+
if val != UNSET_SENTINEL:
|
|
93
|
+
if val is not None or k not in optional_fields:
|
|
94
|
+
m[k] = val
|
|
95
|
+
|
|
96
|
+
return m
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: b78ab004fd11
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .etfprofileresponse import EtfProfileResponse, EtfProfileResponseTypedDict
|
|
6
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
7
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
8
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
9
|
+
import pydantic
|
|
10
|
+
from pydantic import model_serializer
|
|
11
|
+
from typing import Optional
|
|
12
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class GetEtfProfileRequestTypedDict(TypedDict):
|
|
16
|
+
symbol: str
|
|
17
|
+
r"""ETF ticker symbol (e.g. SPY, QQQ, VTI)"""
|
|
18
|
+
isin: NotRequired[str]
|
|
19
|
+
r"""ISIN identifier — the 12-character International Securities Identification Number for the instrument (e.g. `US0378331005` for Apple). Provide this instead of `symbol` when you have an ISIN."""
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class GetEtfProfileRequest(BaseModel):
|
|
23
|
+
symbol: Annotated[
|
|
24
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
25
|
+
]
|
|
26
|
+
r"""ETF ticker symbol (e.g. SPY, QQQ, VTI)"""
|
|
27
|
+
|
|
28
|
+
isin: Annotated[
|
|
29
|
+
Optional[str],
|
|
30
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
31
|
+
] = None
|
|
32
|
+
r"""ISIN identifier — the 12-character International Securities Identification Number for the instrument (e.g. `US0378331005` for Apple). Provide this instead of `symbol` when you have an ISIN."""
|
|
33
|
+
|
|
34
|
+
@model_serializer(mode="wrap")
|
|
35
|
+
def serialize_model(self, handler):
|
|
36
|
+
optional_fields = set(["isin"])
|
|
37
|
+
serialized = handler(self)
|
|
38
|
+
m = {}
|
|
39
|
+
|
|
40
|
+
for n, f in type(self).model_fields.items():
|
|
41
|
+
k = f.alias or n
|
|
42
|
+
val = serialized.get(k, serialized.get(n))
|
|
43
|
+
|
|
44
|
+
if val != UNSET_SENTINEL:
|
|
45
|
+
if val is not None or k not in optional_fields:
|
|
46
|
+
m[k] = val
|
|
47
|
+
|
|
48
|
+
return m
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
class GetEtfProfileResponseTypedDict(TypedDict):
|
|
52
|
+
http_meta: HTTPMetadataTypedDict
|
|
53
|
+
etf_profile_response: NotRequired[EtfProfileResponseTypedDict]
|
|
54
|
+
r"""ETF profile."""
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
class GetEtfProfileResponse(BaseModel):
|
|
58
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
59
|
+
|
|
60
|
+
etf_profile_response: Optional[EtfProfileResponse] = None
|
|
61
|
+
r"""ETF profile."""
|
|
62
|
+
|
|
63
|
+
@model_serializer(mode="wrap")
|
|
64
|
+
def serialize_model(self, handler):
|
|
65
|
+
optional_fields = set(["EtfProfileResponse"])
|
|
66
|
+
serialized = handler(self)
|
|
67
|
+
m = {}
|
|
68
|
+
|
|
69
|
+
for n, f in type(self).model_fields.items():
|
|
70
|
+
k = f.alias or n
|
|
71
|
+
val = serialized.get(k, serialized.get(n))
|
|
72
|
+
|
|
73
|
+
if val != UNSET_SENTINEL:
|
|
74
|
+
if val is not None or k not in optional_fields:
|
|
75
|
+
m[k] = val
|
|
76
|
+
|
|
77
|
+
return m
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 01d4c11f6320
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .etfsectorallocationresponse import (
|
|
6
|
+
EtfSectorAllocationResponse,
|
|
7
|
+
EtfSectorAllocationResponseTypedDict,
|
|
8
|
+
)
|
|
9
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
10
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
11
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
12
|
+
import pydantic
|
|
13
|
+
from pydantic import model_serializer
|
|
14
|
+
from typing import Optional
|
|
15
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class GetEtfSectorAllocationRequestTypedDict(TypedDict):
|
|
19
|
+
symbol: str
|
|
20
|
+
r"""ETF ticker to query. Send the plain uppercase symbol, e.g. `SPY`, `QQQ`, `IWM`."""
|
|
21
|
+
isin: NotRequired[str]
|
|
22
|
+
r"""ISIN identifier — the 12-character International Securities Identification Number for the instrument (e.g. `US0378331005` for Apple). Provide this instead of `symbol` when you have an ISIN."""
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class GetEtfSectorAllocationRequest(BaseModel):
|
|
26
|
+
symbol: Annotated[
|
|
27
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
28
|
+
]
|
|
29
|
+
r"""ETF ticker to query. Send the plain uppercase symbol, e.g. `SPY`, `QQQ`, `IWM`."""
|
|
30
|
+
|
|
31
|
+
isin: Annotated[
|
|
32
|
+
Optional[str],
|
|
33
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
34
|
+
] = None
|
|
35
|
+
r"""ISIN identifier — the 12-character International Securities Identification Number for the instrument (e.g. `US0378331005` for Apple). Provide this instead of `symbol` when you have an ISIN."""
|
|
36
|
+
|
|
37
|
+
@model_serializer(mode="wrap")
|
|
38
|
+
def serialize_model(self, handler):
|
|
39
|
+
optional_fields = set(["isin"])
|
|
40
|
+
serialized = handler(self)
|
|
41
|
+
m = {}
|
|
42
|
+
|
|
43
|
+
for n, f in type(self).model_fields.items():
|
|
44
|
+
k = f.alias or n
|
|
45
|
+
val = serialized.get(k, serialized.get(n))
|
|
46
|
+
|
|
47
|
+
if val != UNSET_SENTINEL:
|
|
48
|
+
if val is not None or k not in optional_fields:
|
|
49
|
+
m[k] = val
|
|
50
|
+
|
|
51
|
+
return m
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
class GetEtfSectorAllocationResponseTypedDict(TypedDict):
|
|
55
|
+
http_meta: HTTPMetadataTypedDict
|
|
56
|
+
etf_sector_allocation_response: NotRequired[EtfSectorAllocationResponseTypedDict]
|
|
57
|
+
r"""Successful response"""
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
class GetEtfSectorAllocationResponse(BaseModel):
|
|
61
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
62
|
+
|
|
63
|
+
etf_sector_allocation_response: Optional[EtfSectorAllocationResponse] = None
|
|
64
|
+
r"""Successful response"""
|
|
65
|
+
|
|
66
|
+
@model_serializer(mode="wrap")
|
|
67
|
+
def serialize_model(self, handler):
|
|
68
|
+
optional_fields = set(["EtfSectorAllocationResponse"])
|
|
69
|
+
serialized = handler(self)
|
|
70
|
+
m = {}
|
|
71
|
+
|
|
72
|
+
for n, f in type(self).model_fields.items():
|
|
73
|
+
k = f.alias or n
|
|
74
|
+
val = serialized.get(k, serialized.get(n))
|
|
75
|
+
|
|
76
|
+
if val != UNSET_SENTINEL:
|
|
77
|
+
if val is not None or k not in optional_fields:
|
|
78
|
+
m[k] = val
|
|
79
|
+
|
|
80
|
+
return m
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: a53d4aec4038
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .predmdeventwithcontracts import (
|
|
7
|
+
PredMdEventWithContracts,
|
|
8
|
+
PredMdEventWithContractsTypedDict,
|
|
9
|
+
)
|
|
10
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
11
|
+
from finance_dev.utils import FieldMetadata, PathParamMetadata
|
|
12
|
+
import pydantic
|
|
13
|
+
from pydantic import model_serializer
|
|
14
|
+
from typing import Optional
|
|
15
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class GetEventContractsRequestTypedDict(TypedDict):
|
|
19
|
+
event_id: str
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class GetEventContractsRequest(BaseModel):
|
|
23
|
+
event_id: Annotated[
|
|
24
|
+
str,
|
|
25
|
+
pydantic.Field(alias="eventId"),
|
|
26
|
+
FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
|
|
27
|
+
]
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class GetEventContractsResponseBodyTypedDict(TypedDict):
|
|
31
|
+
r"""Standard success envelope used by all success responses. `data` is endpoint-specific."""
|
|
32
|
+
|
|
33
|
+
success: bool
|
|
34
|
+
data: NotRequired[PredMdEventWithContractsTypedDict]
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
class GetEventContractsResponseBody(BaseModel):
|
|
38
|
+
r"""Standard success envelope used by all success responses. `data` is endpoint-specific."""
|
|
39
|
+
|
|
40
|
+
success: bool
|
|
41
|
+
|
|
42
|
+
data: Optional[PredMdEventWithContracts] = None
|
|
43
|
+
|
|
44
|
+
@model_serializer(mode="wrap")
|
|
45
|
+
def serialize_model(self, handler):
|
|
46
|
+
optional_fields = set(["data"])
|
|
47
|
+
serialized = handler(self)
|
|
48
|
+
m = {}
|
|
49
|
+
|
|
50
|
+
for n, f in type(self).model_fields.items():
|
|
51
|
+
k = f.alias or n
|
|
52
|
+
val = serialized.get(k, serialized.get(n))
|
|
53
|
+
|
|
54
|
+
if val != UNSET_SENTINEL:
|
|
55
|
+
if val is not None or k not in optional_fields:
|
|
56
|
+
m[k] = val
|
|
57
|
+
|
|
58
|
+
return m
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
class GetEventContractsResponseTypedDict(TypedDict):
|
|
62
|
+
http_meta: HTTPMetadataTypedDict
|
|
63
|
+
object: NotRequired[GetEventContractsResponseBodyTypedDict]
|
|
64
|
+
r"""Event with its contracts"""
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
class GetEventContractsResponse(BaseModel):
|
|
68
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
69
|
+
|
|
70
|
+
object: Optional[GetEventContractsResponseBody] = None
|
|
71
|
+
r"""Event with its contracts"""
|
|
72
|
+
|
|
73
|
+
@model_serializer(mode="wrap")
|
|
74
|
+
def serialize_model(self, handler):
|
|
75
|
+
optional_fields = set(["object"])
|
|
76
|
+
serialized = handler(self)
|
|
77
|
+
m = {}
|
|
78
|
+
|
|
79
|
+
for n, f in type(self).model_fields.items():
|
|
80
|
+
k = f.alias or n
|
|
81
|
+
val = serialized.get(k, serialized.get(n))
|
|
82
|
+
|
|
83
|
+
if val != UNSET_SENTINEL:
|
|
84
|
+
if val is not None or k not in optional_fields:
|
|
85
|
+
m[k] = val
|
|
86
|
+
|
|
87
|
+
return m
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 0ca10df80498
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .fdaadvisorycommitteecalendarresponse import (
|
|
6
|
+
FdaAdvisoryCommitteeCalendarResponse,
|
|
7
|
+
FdaAdvisoryCommitteeCalendarResponseTypedDict,
|
|
8
|
+
)
|
|
9
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
10
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
11
|
+
import pydantic
|
|
12
|
+
from pydantic import model_serializer
|
|
13
|
+
from typing import Optional
|
|
14
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class GetFdaAdvisoryCommitteeCalendarResponseTypedDict(TypedDict):
|
|
18
|
+
http_meta: HTTPMetadataTypedDict
|
|
19
|
+
fda_advisory_committee_calendar_response: NotRequired[
|
|
20
|
+
FdaAdvisoryCommitteeCalendarResponseTypedDict
|
|
21
|
+
]
|
|
22
|
+
r"""FDA advisory committee calendar."""
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class GetFdaAdvisoryCommitteeCalendarResponse(BaseModel):
|
|
26
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
27
|
+
|
|
28
|
+
fda_advisory_committee_calendar_response: Optional[
|
|
29
|
+
FdaAdvisoryCommitteeCalendarResponse
|
|
30
|
+
] = None
|
|
31
|
+
r"""FDA advisory committee calendar."""
|
|
32
|
+
|
|
33
|
+
@model_serializer(mode="wrap")
|
|
34
|
+
def serialize_model(self, handler):
|
|
35
|
+
optional_fields = set(["FdaAdvisoryCommitteeCalendarResponse"])
|
|
36
|
+
serialized = handler(self)
|
|
37
|
+
m = {}
|
|
38
|
+
|
|
39
|
+
for n, f in type(self).model_fields.items():
|
|
40
|
+
k = f.alias or n
|
|
41
|
+
val = serialized.get(k, serialized.get(n))
|
|
42
|
+
|
|
43
|
+
if val != UNSET_SENTINEL:
|
|
44
|
+
if val is not None or k not in optional_fields:
|
|
45
|
+
m[k] = val
|
|
46
|
+
|
|
47
|
+
return m
|