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,76 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 930408cb76d8
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from enum import Enum
|
|
6
|
+
from finance_dev import models, utils
|
|
7
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
8
|
+
from pydantic import field_serializer, model_serializer
|
|
9
|
+
from typing import Optional
|
|
10
|
+
from typing_extensions import NotRequired, TypedDict
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class SearchSymbolItemType(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
14
|
+
r"""Instrument class returned by symbol search."""
|
|
15
|
+
|
|
16
|
+
STOCK = "stock"
|
|
17
|
+
OPTION = "option"
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class SearchSymbolItemTypedDict(TypedDict):
|
|
21
|
+
r"""Symbol search result."""
|
|
22
|
+
|
|
23
|
+
description: NotRequired[str]
|
|
24
|
+
r"""Full description of the symbol/company"""
|
|
25
|
+
exchange: NotRequired[str]
|
|
26
|
+
r"""Exchange code where the data originates. Format depends on the upstream data source and may use MIC, ISO 10383, or a vendor-specific code."""
|
|
27
|
+
symbol: NotRequired[str]
|
|
28
|
+
r"""Symbol identifier"""
|
|
29
|
+
ticker: NotRequired[str]
|
|
30
|
+
r"""Symbol ticker"""
|
|
31
|
+
type: NotRequired[SearchSymbolItemType]
|
|
32
|
+
r"""Instrument class returned by symbol search."""
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class SearchSymbolItem(BaseModel):
|
|
36
|
+
r"""Symbol search result."""
|
|
37
|
+
|
|
38
|
+
description: Optional[str] = None
|
|
39
|
+
r"""Full description of the symbol/company"""
|
|
40
|
+
|
|
41
|
+
exchange: Optional[str] = None
|
|
42
|
+
r"""Exchange code where the data originates. Format depends on the upstream data source and may use MIC, ISO 10383, or a vendor-specific code."""
|
|
43
|
+
|
|
44
|
+
symbol: Optional[str] = None
|
|
45
|
+
r"""Symbol identifier"""
|
|
46
|
+
|
|
47
|
+
ticker: Optional[str] = None
|
|
48
|
+
r"""Symbol ticker"""
|
|
49
|
+
|
|
50
|
+
type: Optional[SearchSymbolItemType] = None
|
|
51
|
+
r"""Instrument class returned by symbol search."""
|
|
52
|
+
|
|
53
|
+
@field_serializer("type")
|
|
54
|
+
def serialize_type(self, value):
|
|
55
|
+
if isinstance(value, str):
|
|
56
|
+
try:
|
|
57
|
+
return models.SearchSymbolItemType(value)
|
|
58
|
+
except ValueError:
|
|
59
|
+
return value
|
|
60
|
+
return value
|
|
61
|
+
|
|
62
|
+
@model_serializer(mode="wrap")
|
|
63
|
+
def serialize_model(self, handler):
|
|
64
|
+
optional_fields = set(["description", "exchange", "symbol", "ticker", "type"])
|
|
65
|
+
serialized = handler(self)
|
|
66
|
+
m = {}
|
|
67
|
+
|
|
68
|
+
for n, f in type(self).model_fields.items():
|
|
69
|
+
k = f.alias or n
|
|
70
|
+
val = serialized.get(k, serialized.get(n))
|
|
71
|
+
|
|
72
|
+
if val != UNSET_SENTINEL:
|
|
73
|
+
if val is not None or k not in optional_fields:
|
|
74
|
+
m[k] = val
|
|
75
|
+
|
|
76
|
+
return m
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: ced83a40a9ad
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from enum import Enum
|
|
6
|
+
from finance_dev import models, utils
|
|
7
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
8
|
+
from pydantic import field_serializer, model_serializer
|
|
9
|
+
from typing import Optional
|
|
10
|
+
from typing_extensions import NotRequired, TypedDict
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class SearchSymbolResponseItemType(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
14
|
+
r"""Instrument class returned by symbol search."""
|
|
15
|
+
|
|
16
|
+
STOCK = "stock"
|
|
17
|
+
OPTION = "option"
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class SearchSymbolResponseItemTypedDict(TypedDict):
|
|
21
|
+
r"""One symbol search result. Use it to let users choose the exact instrument before fetching quotes, research data, or placing orders."""
|
|
22
|
+
|
|
23
|
+
description: NotRequired[str]
|
|
24
|
+
r"""Human-readable company or security name. Show this next to the symbol so users can confirm they selected the intended instrument."""
|
|
25
|
+
symbol: NotRequired[str]
|
|
26
|
+
r"""Symbol value to pass into quote, chart, research, or order endpoints. Use the exact case returned here."""
|
|
27
|
+
tag: NotRequired[str]
|
|
28
|
+
r"""Exchange or source tag, such as `XNAS` for Nasdaq or `OPRA` for options. Use it for display or filtering when multiple instruments share similar symbols."""
|
|
29
|
+
type: NotRequired[SearchSymbolResponseItemType]
|
|
30
|
+
r"""Instrument class returned by symbol search."""
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class SearchSymbolResponseItem(BaseModel):
|
|
34
|
+
r"""One symbol search result. Use it to let users choose the exact instrument before fetching quotes, research data, or placing orders."""
|
|
35
|
+
|
|
36
|
+
description: Optional[str] = None
|
|
37
|
+
r"""Human-readable company or security name. Show this next to the symbol so users can confirm they selected the intended instrument."""
|
|
38
|
+
|
|
39
|
+
symbol: Optional[str] = None
|
|
40
|
+
r"""Symbol value to pass into quote, chart, research, or order endpoints. Use the exact case returned here."""
|
|
41
|
+
|
|
42
|
+
tag: Optional[str] = None
|
|
43
|
+
r"""Exchange or source tag, such as `XNAS` for Nasdaq or `OPRA` for options. Use it for display or filtering when multiple instruments share similar symbols."""
|
|
44
|
+
|
|
45
|
+
type: Optional[SearchSymbolResponseItemType] = None
|
|
46
|
+
r"""Instrument class returned by symbol search."""
|
|
47
|
+
|
|
48
|
+
@field_serializer("type")
|
|
49
|
+
def serialize_type(self, value):
|
|
50
|
+
if isinstance(value, str):
|
|
51
|
+
try:
|
|
52
|
+
return models.SearchSymbolResponseItemType(value)
|
|
53
|
+
except ValueError:
|
|
54
|
+
return value
|
|
55
|
+
return value
|
|
56
|
+
|
|
57
|
+
@model_serializer(mode="wrap")
|
|
58
|
+
def serialize_model(self, handler):
|
|
59
|
+
optional_fields = set(["description", "symbol", "tag", "type"])
|
|
60
|
+
serialized = handler(self)
|
|
61
|
+
m = {}
|
|
62
|
+
|
|
63
|
+
for n, f in type(self).model_fields.items():
|
|
64
|
+
k = f.alias or n
|
|
65
|
+
val = serialized.get(k, serialized.get(n))
|
|
66
|
+
|
|
67
|
+
if val != UNSET_SENTINEL:
|
|
68
|
+
if val is not None or k not in optional_fields:
|
|
69
|
+
m[k] = val
|
|
70
|
+
|
|
71
|
+
return m
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 74b284dc9311
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .searchsymbolitem import SearchSymbolItem, SearchSymbolItemTypedDict
|
|
7
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
8
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
9
|
+
import pydantic
|
|
10
|
+
from pydantic import model_serializer
|
|
11
|
+
from typing import List, Optional
|
|
12
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class SearchSymbolsRequestTypedDict(TypedDict):
|
|
16
|
+
query: str
|
|
17
|
+
r"""Text to search. Use plain text for stocks and indices, `.` prefix for options such as `.AAPL`, and `/` prefix for futures such as `/ES`."""
|
|
18
|
+
limit: NotRequired[int]
|
|
19
|
+
r"""Maximum number of results to return. Use smaller values for autocomplete and larger values for search result pages. Default is 20; maximum is 100."""
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class SearchSymbolsRequest(BaseModel):
|
|
23
|
+
query: Annotated[
|
|
24
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
25
|
+
]
|
|
26
|
+
r"""Text to search. Use plain text for stocks and indices, `.` prefix for options such as `.AAPL`, and `/` prefix for futures such as `/ES`."""
|
|
27
|
+
|
|
28
|
+
limit: Annotated[
|
|
29
|
+
Optional[int],
|
|
30
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
31
|
+
] = 20
|
|
32
|
+
r"""Maximum number of results to return. Use smaller values for autocomplete and larger values for search result pages. Default is 20; maximum is 100."""
|
|
33
|
+
|
|
34
|
+
@model_serializer(mode="wrap")
|
|
35
|
+
def serialize_model(self, handler):
|
|
36
|
+
optional_fields = set(["limit"])
|
|
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 SearchSymbolsResponseTypedDict(TypedDict):
|
|
52
|
+
http_meta: HTTPMetadataTypedDict
|
|
53
|
+
search_symbol_items: NotRequired[List[SearchSymbolItemTypedDict]]
|
|
54
|
+
r"""Symbol search results retrieved successfully"""
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
class SearchSymbolsResponse(BaseModel):
|
|
58
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
59
|
+
|
|
60
|
+
search_symbol_items: Optional[List[SearchSymbolItem]] = None
|
|
61
|
+
r"""Symbol search results retrieved successfully"""
|
|
62
|
+
|
|
63
|
+
@model_serializer(mode="wrap")
|
|
64
|
+
def serialize_model(self, handler):
|
|
65
|
+
optional_fields = set(["SearchSymbolItems"])
|
|
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,91 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: a8cb747c0f75
|
|
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 SecFilingTypedDict(TypedDict):
|
|
13
|
+
r"""A single SEC filing with its accession number, form type, dates and document URLs."""
|
|
14
|
+
|
|
15
|
+
accepted_date: NotRequired[str]
|
|
16
|
+
r"""Date and time when the SEC accepted the filing"""
|
|
17
|
+
access_number: NotRequired[str]
|
|
18
|
+
r"""SEC accession number uniquely identifying the filing"""
|
|
19
|
+
cik: NotRequired[str]
|
|
20
|
+
r"""Central Index Key assigned by the SEC"""
|
|
21
|
+
filed_date: NotRequired[str]
|
|
22
|
+
r"""Date when the filing was submitted to the SEC"""
|
|
23
|
+
filing_url: NotRequired[str]
|
|
24
|
+
r"""URL to the complete filing on SEC EDGAR"""
|
|
25
|
+
form: NotRequired[str]
|
|
26
|
+
r"""Type of SEC form (e.g., 10-K, 10-Q, 8-K)"""
|
|
27
|
+
report_url: NotRequired[str]
|
|
28
|
+
r"""URL to the formatted report document"""
|
|
29
|
+
symbol: NotRequired[str]
|
|
30
|
+
r"""Stock ticker symbol"""
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class SecFiling(BaseModel):
|
|
34
|
+
r"""A single SEC filing with its accession number, form type, dates and document URLs."""
|
|
35
|
+
|
|
36
|
+
accepted_date: Annotated[Optional[str], pydantic.Field(alias="acceptedDate")] = None
|
|
37
|
+
r"""Date and time when the SEC accepted the filing"""
|
|
38
|
+
|
|
39
|
+
access_number: Annotated[Optional[str], pydantic.Field(alias="accessNumber")] = None
|
|
40
|
+
r"""SEC accession number uniquely identifying the filing"""
|
|
41
|
+
|
|
42
|
+
cik: Optional[str] = None
|
|
43
|
+
r"""Central Index Key assigned by the SEC"""
|
|
44
|
+
|
|
45
|
+
filed_date: Annotated[Optional[str], pydantic.Field(alias="filedDate")] = None
|
|
46
|
+
r"""Date when the filing was submitted to the SEC"""
|
|
47
|
+
|
|
48
|
+
filing_url: Annotated[Optional[str], pydantic.Field(alias="filingUrl")] = None
|
|
49
|
+
r"""URL to the complete filing on SEC EDGAR"""
|
|
50
|
+
|
|
51
|
+
form: Optional[str] = None
|
|
52
|
+
r"""Type of SEC form (e.g., 10-K, 10-Q, 8-K)"""
|
|
53
|
+
|
|
54
|
+
report_url: Annotated[Optional[str], pydantic.Field(alias="reportUrl")] = None
|
|
55
|
+
r"""URL to the formatted report document"""
|
|
56
|
+
|
|
57
|
+
symbol: Optional[str] = None
|
|
58
|
+
r"""Stock ticker symbol"""
|
|
59
|
+
|
|
60
|
+
@model_serializer(mode="wrap")
|
|
61
|
+
def serialize_model(self, handler):
|
|
62
|
+
optional_fields = set(
|
|
63
|
+
[
|
|
64
|
+
"acceptedDate",
|
|
65
|
+
"accessNumber",
|
|
66
|
+
"cik",
|
|
67
|
+
"filedDate",
|
|
68
|
+
"filingUrl",
|
|
69
|
+
"form",
|
|
70
|
+
"reportUrl",
|
|
71
|
+
"symbol",
|
|
72
|
+
]
|
|
73
|
+
)
|
|
74
|
+
serialized = handler(self)
|
|
75
|
+
m = {}
|
|
76
|
+
|
|
77
|
+
for n, f in type(self).model_fields.items():
|
|
78
|
+
k = f.alias or n
|
|
79
|
+
val = serialized.get(k, serialized.get(n))
|
|
80
|
+
|
|
81
|
+
if val != UNSET_SENTINEL:
|
|
82
|
+
if val is not None or k not in optional_fields:
|
|
83
|
+
m[k] = val
|
|
84
|
+
|
|
85
|
+
return m
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
try:
|
|
89
|
+
SecFiling.model_rebuild()
|
|
90
|
+
except NameError:
|
|
91
|
+
pass
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 0c818c49181e
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .secfiling import SecFiling, SecFilingTypedDict
|
|
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 SecFilingsResponseTypedDict(TypedDict):
|
|
13
|
+
r"""Response containing SEC filings for a symbol."""
|
|
14
|
+
|
|
15
|
+
filings: NotRequired[List[SecFilingTypedDict]]
|
|
16
|
+
r"""Array of SEC filings"""
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class SecFilingsResponse(BaseModel):
|
|
20
|
+
r"""Response containing SEC filings for a symbol."""
|
|
21
|
+
|
|
22
|
+
filings: Optional[List[SecFiling]] = None
|
|
23
|
+
r"""Array of SEC filings"""
|
|
24
|
+
|
|
25
|
+
@model_serializer(mode="wrap")
|
|
26
|
+
def serialize_model(self, handler):
|
|
27
|
+
optional_fields = set(["filings"])
|
|
28
|
+
serialized = handler(self)
|
|
29
|
+
m = {}
|
|
30
|
+
|
|
31
|
+
for n, f in type(self).model_fields.items():
|
|
32
|
+
k = f.alias or n
|
|
33
|
+
val = serialized.get(k, serialized.get(n))
|
|
34
|
+
|
|
35
|
+
if val != UNSET_SENTINEL:
|
|
36
|
+
if val is not None or k not in optional_fields:
|
|
37
|
+
m[k] = val
|
|
38
|
+
|
|
39
|
+
return m
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 5e4f1e9ca5a0
|
|
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 SectorAvgChangeTypedDict(TypedDict):
|
|
13
|
+
r"""Average percentage move by sector. Use it to compare which sectors are leading or lagging the market."""
|
|
14
|
+
|
|
15
|
+
avg_change: NotRequired[float]
|
|
16
|
+
r"""Average percentage change for the sector"""
|
|
17
|
+
sector: NotRequired[str]
|
|
18
|
+
r"""Sector name, such as Technology or Financials. Use it as the label in sector performance views."""
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class SectorAvgChange(BaseModel):
|
|
22
|
+
r"""Average percentage move by sector. Use it to compare which sectors are leading or lagging the market."""
|
|
23
|
+
|
|
24
|
+
avg_change: Annotated[Optional[float], pydantic.Field(alias="avgChange")] = None
|
|
25
|
+
r"""Average percentage change for the sector"""
|
|
26
|
+
|
|
27
|
+
sector: Optional[str] = None
|
|
28
|
+
r"""Sector name, such as Technology or Financials. Use it as the label in sector performance views."""
|
|
29
|
+
|
|
30
|
+
@model_serializer(mode="wrap")
|
|
31
|
+
def serialize_model(self, handler):
|
|
32
|
+
optional_fields = set(["avgChange", "sector"])
|
|
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
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
try:
|
|
48
|
+
SectorAvgChange.model_rebuild()
|
|
49
|
+
except NameError:
|
|
50
|
+
pass
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 52fa621c8b19
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
6
|
+
from finance_dev.utils import FieldMetadata, SecurityMetadata
|
|
7
|
+
from pydantic import model_serializer
|
|
8
|
+
from typing import Optional
|
|
9
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class SecurityTypedDict(TypedDict):
|
|
13
|
+
client_id: NotRequired[str]
|
|
14
|
+
client_secret: NotRequired[str]
|
|
15
|
+
token_url: NotRequired[str]
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class Security(BaseModel):
|
|
19
|
+
client_id: Annotated[
|
|
20
|
+
Optional[str],
|
|
21
|
+
FieldMetadata(
|
|
22
|
+
security=SecurityMetadata(
|
|
23
|
+
scheme=True,
|
|
24
|
+
scheme_type="oauth2",
|
|
25
|
+
sub_type="client_credentials",
|
|
26
|
+
field_name="clientID",
|
|
27
|
+
)
|
|
28
|
+
),
|
|
29
|
+
] = None
|
|
30
|
+
|
|
31
|
+
client_secret: Annotated[
|
|
32
|
+
Optional[str],
|
|
33
|
+
FieldMetadata(
|
|
34
|
+
security=SecurityMetadata(
|
|
35
|
+
scheme=True,
|
|
36
|
+
scheme_type="oauth2",
|
|
37
|
+
sub_type="client_credentials",
|
|
38
|
+
field_name="clientSecret",
|
|
39
|
+
)
|
|
40
|
+
),
|
|
41
|
+
] = None
|
|
42
|
+
|
|
43
|
+
token_url: Optional[str] = "https://api.aries.com/v1/oauth2/token"
|
|
44
|
+
|
|
45
|
+
@model_serializer(mode="wrap")
|
|
46
|
+
def serialize_model(self, handler):
|
|
47
|
+
optional_fields = set(["ClientID", "ClientSecret", "TokenURL"])
|
|
48
|
+
serialized = handler(self)
|
|
49
|
+
m = {}
|
|
50
|
+
|
|
51
|
+
for n, f in type(self).model_fields.items():
|
|
52
|
+
k = f.alias or n
|
|
53
|
+
val = serialized.get(k, serialized.get(n))
|
|
54
|
+
|
|
55
|
+
if val != UNSET_SENTINEL:
|
|
56
|
+
if val is not None or k not in optional_fields:
|
|
57
|
+
m[k] = val
|
|
58
|
+
|
|
59
|
+
return m
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 4be879933929
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from enum import Enum
|
|
6
|
+
from finance_dev import utils
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class SecurityTypeEnum(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
10
|
+
r"""What kind of instrument the order is for. Pick one:
|
|
11
|
+
- `CS` — Common Stock (equity / ETF).
|
|
12
|
+
- `OPT` — Option contract (call or put).
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
CS = "CS"
|
|
16
|
+
OPT = "OPT"
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 499d5a6020e4
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
6
|
+
import pydantic
|
|
7
|
+
from pydantic import model_serializer
|
|
8
|
+
from typing import List, Optional
|
|
9
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class ShortInterestResponseResultTypedDict(TypedDict):
|
|
13
|
+
avg_daily_volume: NotRequired[int]
|
|
14
|
+
r"""Average daily trading volume in shares used for the days-to-cover calculation"""
|
|
15
|
+
days_to_cover: NotRequired[float]
|
|
16
|
+
r"""Number of days of average volume needed to cover the short interest"""
|
|
17
|
+
settlement_date: NotRequired[str]
|
|
18
|
+
r"""Settlement date of the short interest report (YYYY-MM-DD)"""
|
|
19
|
+
short_interest: NotRequired[int]
|
|
20
|
+
r"""Total number of shares sold short and not yet covered as of the settlement date"""
|
|
21
|
+
ticker: NotRequired[str]
|
|
22
|
+
r"""Stock ticker symbol"""
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class ShortInterestResponseResult(BaseModel):
|
|
26
|
+
avg_daily_volume: Annotated[
|
|
27
|
+
Optional[int], pydantic.Field(alias="avgDailyVolume")
|
|
28
|
+
] = None
|
|
29
|
+
r"""Average daily trading volume in shares used for the days-to-cover calculation"""
|
|
30
|
+
|
|
31
|
+
days_to_cover: Annotated[Optional[float], pydantic.Field(alias="daysToCover")] = (
|
|
32
|
+
None
|
|
33
|
+
)
|
|
34
|
+
r"""Number of days of average volume needed to cover the short interest"""
|
|
35
|
+
|
|
36
|
+
settlement_date: Annotated[
|
|
37
|
+
Optional[str], pydantic.Field(alias="settlementDate")
|
|
38
|
+
] = None
|
|
39
|
+
r"""Settlement date of the short interest report (YYYY-MM-DD)"""
|
|
40
|
+
|
|
41
|
+
short_interest: Annotated[Optional[int], pydantic.Field(alias="shortInterest")] = (
|
|
42
|
+
None
|
|
43
|
+
)
|
|
44
|
+
r"""Total number of shares sold short and not yet covered as of the settlement date"""
|
|
45
|
+
|
|
46
|
+
ticker: Optional[str] = None
|
|
47
|
+
r"""Stock ticker symbol"""
|
|
48
|
+
|
|
49
|
+
@model_serializer(mode="wrap")
|
|
50
|
+
def serialize_model(self, handler):
|
|
51
|
+
optional_fields = set(
|
|
52
|
+
[
|
|
53
|
+
"avgDailyVolume",
|
|
54
|
+
"daysToCover",
|
|
55
|
+
"settlementDate",
|
|
56
|
+
"shortInterest",
|
|
57
|
+
"ticker",
|
|
58
|
+
]
|
|
59
|
+
)
|
|
60
|
+
serialized = handler(self)
|
|
61
|
+
m = {}
|
|
62
|
+
|
|
63
|
+
for n, f in type(self).model_fields.items():
|
|
64
|
+
k = f.alias or n
|
|
65
|
+
val = serialized.get(k, serialized.get(n))
|
|
66
|
+
|
|
67
|
+
if val != UNSET_SENTINEL:
|
|
68
|
+
if val is not None or k not in optional_fields:
|
|
69
|
+
m[k] = val
|
|
70
|
+
|
|
71
|
+
return m
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
class ShortInterestResponseTypedDict(TypedDict):
|
|
75
|
+
r"""Short interest records per ticker, including shares sold short, average daily volume and days to cover, sourced from Polygon."""
|
|
76
|
+
|
|
77
|
+
next_url: NotRequired[str]
|
|
78
|
+
r"""URL for next page of results"""
|
|
79
|
+
request_id: NotRequired[str]
|
|
80
|
+
r"""Request identifier returned by the upstream data provider"""
|
|
81
|
+
results: NotRequired[List[ShortInterestResponseResultTypedDict]]
|
|
82
|
+
r"""Short interest records, one per ticker and settlement date"""
|
|
83
|
+
status: NotRequired[str]
|
|
84
|
+
r"""Status string from the upstream data provider — typically `OK` for a successful response. Treat any other value as an error indicator alongside the HTTP status code."""
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
class ShortInterestResponse(BaseModel):
|
|
88
|
+
r"""Short interest records per ticker, including shares sold short, average daily volume and days to cover, sourced from Polygon."""
|
|
89
|
+
|
|
90
|
+
next_url: Annotated[Optional[str], pydantic.Field(alias="nextUrl")] = None
|
|
91
|
+
r"""URL for next page of results"""
|
|
92
|
+
|
|
93
|
+
request_id: Annotated[Optional[str], pydantic.Field(alias="requestId")] = None
|
|
94
|
+
r"""Request identifier returned by the upstream data provider"""
|
|
95
|
+
|
|
96
|
+
results: Optional[List[ShortInterestResponseResult]] = None
|
|
97
|
+
r"""Short interest records, one per ticker and settlement date"""
|
|
98
|
+
|
|
99
|
+
status: Optional[str] = None
|
|
100
|
+
r"""Status string from the upstream data provider — typically `OK` for a successful response. Treat any other value as an error indicator alongside the HTTP status code."""
|
|
101
|
+
|
|
102
|
+
@model_serializer(mode="wrap")
|
|
103
|
+
def serialize_model(self, handler):
|
|
104
|
+
optional_fields = set(["nextUrl", "requestId", "results", "status"])
|
|
105
|
+
serialized = handler(self)
|
|
106
|
+
m = {}
|
|
107
|
+
|
|
108
|
+
for n, f in type(self).model_fields.items():
|
|
109
|
+
k = f.alias or n
|
|
110
|
+
val = serialized.get(k, serialized.get(n))
|
|
111
|
+
|
|
112
|
+
if val != UNSET_SENTINEL:
|
|
113
|
+
if val is not None or k not in optional_fields:
|
|
114
|
+
m[k] = val
|
|
115
|
+
|
|
116
|
+
return m
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
try:
|
|
120
|
+
ShortInterestResponseResult.model_rebuild()
|
|
121
|
+
except NameError:
|
|
122
|
+
pass
|
|
123
|
+
try:
|
|
124
|
+
ShortInterestResponse.model_rebuild()
|
|
125
|
+
except NameError:
|
|
126
|
+
pass
|