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,124 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: e90372b13cfc
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .symboldetails import SymbolDetails, SymbolDetailsTypedDict
|
|
7
|
+
from enum import Enum
|
|
8
|
+
from finance_dev import models, utils
|
|
9
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
10
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
11
|
+
import pydantic
|
|
12
|
+
from pydantic import field_serializer, model_serializer
|
|
13
|
+
from typing import List, Optional
|
|
14
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class Sector(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
18
|
+
r"""Which industry sector to list tickers for. Use the exact uppercase value (including spaces) — these match the values returned by [GET /v1/equity/sector-wise-change](/api-reference/analytics/equity-sector-wise-change).
|
|
19
|
+
- `TECHNOLOGY` — software, hardware, semiconductors
|
|
20
|
+
- `HEALTHCARE` — pharma, biotech, medical devices, providers
|
|
21
|
+
- `FINANCIAL SERVICES` — banks, insurance, asset managers
|
|
22
|
+
- `CONSUMER CYCLICAL` — discretionary spending (autos, retail, travel)
|
|
23
|
+
- `CONSUMER DEFENSIVE` — staples (food, household goods, drugstores)
|
|
24
|
+
- `INDUSTRIALS` — manufacturing, transport, defense, machinery
|
|
25
|
+
- `ENERGY` — oil & gas, renewable energy
|
|
26
|
+
- `UTILITIES` — power, water, gas distribution
|
|
27
|
+
- `BASIC MATERIALS` — mining, chemicals, paper, metals
|
|
28
|
+
- `COMMUNICATION SERVICES` — telecom, media, internet platforms
|
|
29
|
+
- `REAL ESTATE` — REITs and real-estate operators
|
|
30
|
+
- `OTHER` — uncategorized
|
|
31
|
+
- `NONE` — no sector classification
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
HEALTHCARE = "HEALTHCARE"
|
|
35
|
+
UTILITIES = "UTILITIES"
|
|
36
|
+
CONSUMER_CYCLICAL = "CONSUMER CYCLICAL"
|
|
37
|
+
INDUSTRIALS = "INDUSTRIALS"
|
|
38
|
+
CONSUMER_DEFENSIVE = "CONSUMER DEFENSIVE"
|
|
39
|
+
BASIC_MATERIALS = "BASIC MATERIALS"
|
|
40
|
+
COMMUNICATION_SERVICES = "COMMUNICATION SERVICES"
|
|
41
|
+
FINANCIAL_SERVICES = "FINANCIAL SERVICES"
|
|
42
|
+
TECHNOLOGY = "TECHNOLOGY"
|
|
43
|
+
REAL_ESTATE = "REAL ESTATE"
|
|
44
|
+
NONE = "NONE"
|
|
45
|
+
OTHER = "OTHER"
|
|
46
|
+
ENERGY = "ENERGY"
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
class GetSectorTickersRequestTypedDict(TypedDict):
|
|
50
|
+
sector: Sector
|
|
51
|
+
r"""Which industry sector to list tickers for. Use the exact uppercase value (including spaces) — these match the values returned by [GET /v1/equity/sector-wise-change](/api-reference/analytics/equity-sector-wise-change).
|
|
52
|
+
- `TECHNOLOGY` — software, hardware, semiconductors
|
|
53
|
+
- `HEALTHCARE` — pharma, biotech, medical devices, providers
|
|
54
|
+
- `FINANCIAL SERVICES` — banks, insurance, asset managers
|
|
55
|
+
- `CONSUMER CYCLICAL` — discretionary spending (autos, retail, travel)
|
|
56
|
+
- `CONSUMER DEFENSIVE` — staples (food, household goods, drugstores)
|
|
57
|
+
- `INDUSTRIALS` — manufacturing, transport, defense, machinery
|
|
58
|
+
- `ENERGY` — oil & gas, renewable energy
|
|
59
|
+
- `UTILITIES` — power, water, gas distribution
|
|
60
|
+
- `BASIC MATERIALS` — mining, chemicals, paper, metals
|
|
61
|
+
- `COMMUNICATION SERVICES` — telecom, media, internet platforms
|
|
62
|
+
- `REAL ESTATE` — REITs and real-estate operators
|
|
63
|
+
- `OTHER` — uncategorized
|
|
64
|
+
- `NONE` — no sector classification
|
|
65
|
+
"""
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
class GetSectorTickersRequest(BaseModel):
|
|
69
|
+
sector: Annotated[
|
|
70
|
+
Sector, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
71
|
+
]
|
|
72
|
+
r"""Which industry sector to list tickers for. Use the exact uppercase value (including spaces) — these match the values returned by [GET /v1/equity/sector-wise-change](/api-reference/analytics/equity-sector-wise-change).
|
|
73
|
+
- `TECHNOLOGY` — software, hardware, semiconductors
|
|
74
|
+
- `HEALTHCARE` — pharma, biotech, medical devices, providers
|
|
75
|
+
- `FINANCIAL SERVICES` — banks, insurance, asset managers
|
|
76
|
+
- `CONSUMER CYCLICAL` — discretionary spending (autos, retail, travel)
|
|
77
|
+
- `CONSUMER DEFENSIVE` — staples (food, household goods, drugstores)
|
|
78
|
+
- `INDUSTRIALS` — manufacturing, transport, defense, machinery
|
|
79
|
+
- `ENERGY` — oil & gas, renewable energy
|
|
80
|
+
- `UTILITIES` — power, water, gas distribution
|
|
81
|
+
- `BASIC MATERIALS` — mining, chemicals, paper, metals
|
|
82
|
+
- `COMMUNICATION SERVICES` — telecom, media, internet platforms
|
|
83
|
+
- `REAL ESTATE` — REITs and real-estate operators
|
|
84
|
+
- `OTHER` — uncategorized
|
|
85
|
+
- `NONE` — no sector classification
|
|
86
|
+
"""
|
|
87
|
+
|
|
88
|
+
@field_serializer("sector")
|
|
89
|
+
def serialize_sector(self, value):
|
|
90
|
+
if isinstance(value, str):
|
|
91
|
+
try:
|
|
92
|
+
return models.Sector(value)
|
|
93
|
+
except ValueError:
|
|
94
|
+
return value
|
|
95
|
+
return value
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
class GetSectorTickersResponseTypedDict(TypedDict):
|
|
99
|
+
http_meta: HTTPMetadataTypedDict
|
|
100
|
+
symbol_details: NotRequired[List[SymbolDetailsTypedDict]]
|
|
101
|
+
r"""Sector tickers retrieved successfully"""
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
class GetSectorTickersResponse(BaseModel):
|
|
105
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
106
|
+
|
|
107
|
+
symbol_details: Optional[List[SymbolDetails]] = None
|
|
108
|
+
r"""Sector tickers retrieved successfully"""
|
|
109
|
+
|
|
110
|
+
@model_serializer(mode="wrap")
|
|
111
|
+
def serialize_model(self, handler):
|
|
112
|
+
optional_fields = set(["SymbolDetails"])
|
|
113
|
+
serialized = handler(self)
|
|
114
|
+
m = {}
|
|
115
|
+
|
|
116
|
+
for n, f in type(self).model_fields.items():
|
|
117
|
+
k = f.alias or n
|
|
118
|
+
val = serialized.get(k, serialized.get(n))
|
|
119
|
+
|
|
120
|
+
if val != UNSET_SENTINEL:
|
|
121
|
+
if val is not None or k not in optional_fields:
|
|
122
|
+
m[k] = val
|
|
123
|
+
|
|
124
|
+
return m
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: bff276b123b2
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .sectoravgchange import SectorAvgChange, SectorAvgChangeTypedDict
|
|
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 GetSectorWiseChangeRequestTypedDict(TypedDict):
|
|
16
|
+
limit: NotRequired[str]
|
|
17
|
+
r"""Maximum number of sectors to return. Two formats are accepted:
|
|
18
|
+
- An integer like `5`, `10`, `15` to cap the list (default `15`).
|
|
19
|
+
- The literal string `all` to return every sector with no cap.
|
|
20
|
+
"""
|
|
21
|
+
size: NotRequired[str]
|
|
22
|
+
r"""Alias for limit. Ignored when limit is supplied."""
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class GetSectorWiseChangeRequest(BaseModel):
|
|
26
|
+
limit: Annotated[
|
|
27
|
+
Optional[str],
|
|
28
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
29
|
+
] = None
|
|
30
|
+
r"""Maximum number of sectors to return. Two formats are accepted:
|
|
31
|
+
- An integer like `5`, `10`, `15` to cap the list (default `15`).
|
|
32
|
+
- The literal string `all` to return every sector with no cap.
|
|
33
|
+
"""
|
|
34
|
+
|
|
35
|
+
size: Annotated[
|
|
36
|
+
Optional[str],
|
|
37
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
38
|
+
] = None
|
|
39
|
+
r"""Alias for limit. Ignored when limit is supplied."""
|
|
40
|
+
|
|
41
|
+
@model_serializer(mode="wrap")
|
|
42
|
+
def serialize_model(self, handler):
|
|
43
|
+
optional_fields = set(["limit", "size"])
|
|
44
|
+
serialized = handler(self)
|
|
45
|
+
m = {}
|
|
46
|
+
|
|
47
|
+
for n, f in type(self).model_fields.items():
|
|
48
|
+
k = f.alias or n
|
|
49
|
+
val = serialized.get(k, serialized.get(n))
|
|
50
|
+
|
|
51
|
+
if val != UNSET_SENTINEL:
|
|
52
|
+
if val is not None or k not in optional_fields:
|
|
53
|
+
m[k] = val
|
|
54
|
+
|
|
55
|
+
return m
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
class GetSectorWiseChangeResponseTypedDict(TypedDict):
|
|
59
|
+
http_meta: HTTPMetadataTypedDict
|
|
60
|
+
sector_avg_changes: NotRequired[List[SectorAvgChangeTypedDict]]
|
|
61
|
+
r"""Sector-wise changes retrieved successfully"""
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
class GetSectorWiseChangeResponse(BaseModel):
|
|
65
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
66
|
+
|
|
67
|
+
sector_avg_changes: Optional[List[SectorAvgChange]] = None
|
|
68
|
+
r"""Sector-wise changes retrieved successfully"""
|
|
69
|
+
|
|
70
|
+
@model_serializer(mode="wrap")
|
|
71
|
+
def serialize_model(self, handler):
|
|
72
|
+
optional_fields = set(["SectorAvgChanges"])
|
|
73
|
+
serialized = handler(self)
|
|
74
|
+
m = {}
|
|
75
|
+
|
|
76
|
+
for n, f in type(self).model_fields.items():
|
|
77
|
+
k = f.alias or n
|
|
78
|
+
val = serialized.get(k, serialized.get(n))
|
|
79
|
+
|
|
80
|
+
if val != UNSET_SENTINEL:
|
|
81
|
+
if val is not None or k not in optional_fields:
|
|
82
|
+
m[k] = val
|
|
83
|
+
|
|
84
|
+
return m
|
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 4f4180ea4f37
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .shortinterestresponse import ShortInterestResponse, ShortInterestResponseTypedDict
|
|
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 Callable, Optional
|
|
13
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class GetShortInterestRequestTypedDict(TypedDict):
|
|
17
|
+
ticker: NotRequired[str]
|
|
18
|
+
r"""Single ticker symbol filter. Enter one ticker such as AAPL to narrow results to one company."""
|
|
19
|
+
tickers_any_of: NotRequired[str]
|
|
20
|
+
r"""Comma-separated list of ticker symbols."""
|
|
21
|
+
ticker_after: NotRequired[str]
|
|
22
|
+
r"""Ticker pagination lower bound. Returns symbols alphabetically after this ticker, excluding the ticker itself."""
|
|
23
|
+
ticker_from: NotRequired[str]
|
|
24
|
+
r"""Ticker greater than or equal (inclusive)"""
|
|
25
|
+
ticker_before: NotRequired[str]
|
|
26
|
+
r"""Ticker pagination upper bound. Returns symbols alphabetically before this ticker, excluding the ticker itself."""
|
|
27
|
+
ticker_to: NotRequired[str]
|
|
28
|
+
r"""Ticker less than or equal (inclusive)"""
|
|
29
|
+
days_to_cover: NotRequired[float]
|
|
30
|
+
r"""Exact days-to-cover filter for short interest. Use it when screening for one short-squeeze risk value."""
|
|
31
|
+
days_to_cover_list: NotRequired[str]
|
|
32
|
+
r"""Comma-separated list of days to cover"""
|
|
33
|
+
days_to_cover_above: NotRequired[float]
|
|
34
|
+
r"""Days to cover greater than (exclusive)"""
|
|
35
|
+
days_to_cover_min: NotRequired[float]
|
|
36
|
+
r"""Days to cover greater than or equal (inclusive)"""
|
|
37
|
+
days_to_cover_below: NotRequired[float]
|
|
38
|
+
r"""Days to cover less than (exclusive)"""
|
|
39
|
+
days_to_cover_max: NotRequired[float]
|
|
40
|
+
r"""Days to cover less than or equal (inclusive)"""
|
|
41
|
+
settlement_date: NotRequired[date]
|
|
42
|
+
r"""Settlement date in YYYY-MM-DD format. Use it to filter short-interest records by reporting settlement date."""
|
|
43
|
+
settlement_dates: NotRequired[str]
|
|
44
|
+
r"""Comma-separated list of settlement dates"""
|
|
45
|
+
settlement_date_after: NotRequired[date]
|
|
46
|
+
r"""Settlement-date lower-bound filter. Returns records after this date, excluding the date itself."""
|
|
47
|
+
settlement_date_from: NotRequired[date]
|
|
48
|
+
r"""Settlement-date start filter. Returns records on or after this date."""
|
|
49
|
+
settlement_date_before: NotRequired[date]
|
|
50
|
+
r"""Settlement-date upper-bound filter. Returns records before this date, excluding the date itself."""
|
|
51
|
+
settlement_date_to: NotRequired[date]
|
|
52
|
+
r"""Settlement-date end filter. Returns records on or before this date."""
|
|
53
|
+
avg_daily_volume: NotRequired[int]
|
|
54
|
+
r"""Exact average-daily-volume filter. Use it when screening for one specific liquidity value."""
|
|
55
|
+
avg_daily_volume_list: NotRequired[str]
|
|
56
|
+
r"""Comma-separated list of average daily volumes"""
|
|
57
|
+
avg_daily_volume_above: NotRequired[int]
|
|
58
|
+
r"""Average daily volume greater than (exclusive)"""
|
|
59
|
+
avg_daily_volume_min: NotRequired[int]
|
|
60
|
+
r"""Average daily volume greater than or equal (inclusive)"""
|
|
61
|
+
avg_daily_volume_below: NotRequired[int]
|
|
62
|
+
r"""Average daily volume less than (exclusive)"""
|
|
63
|
+
avg_daily_volume_max: NotRequired[int]
|
|
64
|
+
r"""Average daily volume less than or equal (inclusive)"""
|
|
65
|
+
limit: NotRequired[int]
|
|
66
|
+
r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits."""
|
|
67
|
+
sort: NotRequired[str]
|
|
68
|
+
r"""A comma-separated list of sort columns. For each column, append `.asc` or `.desc` to specify direction. Defaults to `ticker.asc` when not specified."""
|
|
69
|
+
next: NotRequired[str]
|
|
70
|
+
r"""Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page."""
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
class GetShortInterestRequest(BaseModel):
|
|
74
|
+
ticker: Annotated[
|
|
75
|
+
Optional[str],
|
|
76
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
77
|
+
] = None
|
|
78
|
+
r"""Single ticker symbol filter. Enter one ticker such as AAPL to narrow results to one company."""
|
|
79
|
+
|
|
80
|
+
tickers_any_of: Annotated[
|
|
81
|
+
Optional[str],
|
|
82
|
+
pydantic.Field(alias="tickersAnyOf"),
|
|
83
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
84
|
+
] = None
|
|
85
|
+
r"""Comma-separated list of ticker symbols."""
|
|
86
|
+
|
|
87
|
+
ticker_after: Annotated[
|
|
88
|
+
Optional[str],
|
|
89
|
+
pydantic.Field(alias="tickerAfter"),
|
|
90
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
91
|
+
] = None
|
|
92
|
+
r"""Ticker pagination lower bound. Returns symbols alphabetically after this ticker, excluding the ticker itself."""
|
|
93
|
+
|
|
94
|
+
ticker_from: Annotated[
|
|
95
|
+
Optional[str],
|
|
96
|
+
pydantic.Field(alias="tickerFrom"),
|
|
97
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
98
|
+
] = None
|
|
99
|
+
r"""Ticker greater than or equal (inclusive)"""
|
|
100
|
+
|
|
101
|
+
ticker_before: Annotated[
|
|
102
|
+
Optional[str],
|
|
103
|
+
pydantic.Field(alias="tickerBefore"),
|
|
104
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
105
|
+
] = None
|
|
106
|
+
r"""Ticker pagination upper bound. Returns symbols alphabetically before this ticker, excluding the ticker itself."""
|
|
107
|
+
|
|
108
|
+
ticker_to: Annotated[
|
|
109
|
+
Optional[str],
|
|
110
|
+
pydantic.Field(alias="tickerTo"),
|
|
111
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
112
|
+
] = None
|
|
113
|
+
r"""Ticker less than or equal (inclusive)"""
|
|
114
|
+
|
|
115
|
+
days_to_cover: Annotated[
|
|
116
|
+
Optional[float],
|
|
117
|
+
pydantic.Field(alias="daysToCover"),
|
|
118
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
119
|
+
] = None
|
|
120
|
+
r"""Exact days-to-cover filter for short interest. Use it when screening for one short-squeeze risk value."""
|
|
121
|
+
|
|
122
|
+
days_to_cover_list: Annotated[
|
|
123
|
+
Optional[str],
|
|
124
|
+
pydantic.Field(alias="daysToCoverList"),
|
|
125
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
126
|
+
] = None
|
|
127
|
+
r"""Comma-separated list of days to cover"""
|
|
128
|
+
|
|
129
|
+
days_to_cover_above: Annotated[
|
|
130
|
+
Optional[float],
|
|
131
|
+
pydantic.Field(alias="daysToCoverAbove"),
|
|
132
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
133
|
+
] = None
|
|
134
|
+
r"""Days to cover greater than (exclusive)"""
|
|
135
|
+
|
|
136
|
+
days_to_cover_min: Annotated[
|
|
137
|
+
Optional[float],
|
|
138
|
+
pydantic.Field(alias="daysToCoverMin"),
|
|
139
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
140
|
+
] = None
|
|
141
|
+
r"""Days to cover greater than or equal (inclusive)"""
|
|
142
|
+
|
|
143
|
+
days_to_cover_below: Annotated[
|
|
144
|
+
Optional[float],
|
|
145
|
+
pydantic.Field(alias="daysToCoverBelow"),
|
|
146
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
147
|
+
] = None
|
|
148
|
+
r"""Days to cover less than (exclusive)"""
|
|
149
|
+
|
|
150
|
+
days_to_cover_max: Annotated[
|
|
151
|
+
Optional[float],
|
|
152
|
+
pydantic.Field(alias="daysToCoverMax"),
|
|
153
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
154
|
+
] = None
|
|
155
|
+
r"""Days to cover less than or equal (inclusive)"""
|
|
156
|
+
|
|
157
|
+
settlement_date: Annotated[
|
|
158
|
+
Optional[date],
|
|
159
|
+
pydantic.Field(alias="settlementDate"),
|
|
160
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
161
|
+
] = None
|
|
162
|
+
r"""Settlement date in YYYY-MM-DD format. Use it to filter short-interest records by reporting settlement date."""
|
|
163
|
+
|
|
164
|
+
settlement_dates: Annotated[
|
|
165
|
+
Optional[str],
|
|
166
|
+
pydantic.Field(alias="settlementDates"),
|
|
167
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
168
|
+
] = None
|
|
169
|
+
r"""Comma-separated list of settlement dates"""
|
|
170
|
+
|
|
171
|
+
settlement_date_after: Annotated[
|
|
172
|
+
Optional[date],
|
|
173
|
+
pydantic.Field(alias="settlementDateAfter"),
|
|
174
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
175
|
+
] = None
|
|
176
|
+
r"""Settlement-date lower-bound filter. Returns records after this date, excluding the date itself."""
|
|
177
|
+
|
|
178
|
+
settlement_date_from: Annotated[
|
|
179
|
+
Optional[date],
|
|
180
|
+
pydantic.Field(alias="settlementDateFrom"),
|
|
181
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
182
|
+
] = None
|
|
183
|
+
r"""Settlement-date start filter. Returns records on or after this date."""
|
|
184
|
+
|
|
185
|
+
settlement_date_before: Annotated[
|
|
186
|
+
Optional[date],
|
|
187
|
+
pydantic.Field(alias="settlementDateBefore"),
|
|
188
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
189
|
+
] = None
|
|
190
|
+
r"""Settlement-date upper-bound filter. Returns records before this date, excluding the date itself."""
|
|
191
|
+
|
|
192
|
+
settlement_date_to: Annotated[
|
|
193
|
+
Optional[date],
|
|
194
|
+
pydantic.Field(alias="settlementDateTo"),
|
|
195
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
196
|
+
] = None
|
|
197
|
+
r"""Settlement-date end filter. Returns records on or before this date."""
|
|
198
|
+
|
|
199
|
+
avg_daily_volume: Annotated[
|
|
200
|
+
Optional[int],
|
|
201
|
+
pydantic.Field(alias="avgDailyVolume"),
|
|
202
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
203
|
+
] = None
|
|
204
|
+
r"""Exact average-daily-volume filter. Use it when screening for one specific liquidity value."""
|
|
205
|
+
|
|
206
|
+
avg_daily_volume_list: Annotated[
|
|
207
|
+
Optional[str],
|
|
208
|
+
pydantic.Field(alias="avgDailyVolumeList"),
|
|
209
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
210
|
+
] = None
|
|
211
|
+
r"""Comma-separated list of average daily volumes"""
|
|
212
|
+
|
|
213
|
+
avg_daily_volume_above: Annotated[
|
|
214
|
+
Optional[int],
|
|
215
|
+
pydantic.Field(alias="avgDailyVolumeAbove"),
|
|
216
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
217
|
+
] = None
|
|
218
|
+
r"""Average daily volume greater than (exclusive)"""
|
|
219
|
+
|
|
220
|
+
avg_daily_volume_min: Annotated[
|
|
221
|
+
Optional[int],
|
|
222
|
+
pydantic.Field(alias="avgDailyVolumeMin"),
|
|
223
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
224
|
+
] = None
|
|
225
|
+
r"""Average daily volume greater than or equal (inclusive)"""
|
|
226
|
+
|
|
227
|
+
avg_daily_volume_below: Annotated[
|
|
228
|
+
Optional[int],
|
|
229
|
+
pydantic.Field(alias="avgDailyVolumeBelow"),
|
|
230
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
231
|
+
] = None
|
|
232
|
+
r"""Average daily volume less than (exclusive)"""
|
|
233
|
+
|
|
234
|
+
avg_daily_volume_max: Annotated[
|
|
235
|
+
Optional[int],
|
|
236
|
+
pydantic.Field(alias="avgDailyVolumeMax"),
|
|
237
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
238
|
+
] = None
|
|
239
|
+
r"""Average daily volume less than or equal (inclusive)"""
|
|
240
|
+
|
|
241
|
+
limit: Annotated[
|
|
242
|
+
Optional[int],
|
|
243
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
244
|
+
] = None
|
|
245
|
+
r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits."""
|
|
246
|
+
|
|
247
|
+
sort: Annotated[
|
|
248
|
+
Optional[str],
|
|
249
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
250
|
+
] = None
|
|
251
|
+
r"""A comma-separated list of sort columns. For each column, append `.asc` or `.desc` to specify direction. Defaults to `ticker.asc` when not specified."""
|
|
252
|
+
|
|
253
|
+
next: Annotated[
|
|
254
|
+
Optional[str],
|
|
255
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
256
|
+
] = None
|
|
257
|
+
r"""Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page."""
|
|
258
|
+
|
|
259
|
+
@model_serializer(mode="wrap")
|
|
260
|
+
def serialize_model(self, handler):
|
|
261
|
+
optional_fields = set(
|
|
262
|
+
[
|
|
263
|
+
"ticker",
|
|
264
|
+
"tickersAnyOf",
|
|
265
|
+
"tickerAfter",
|
|
266
|
+
"tickerFrom",
|
|
267
|
+
"tickerBefore",
|
|
268
|
+
"tickerTo",
|
|
269
|
+
"daysToCover",
|
|
270
|
+
"daysToCoverList",
|
|
271
|
+
"daysToCoverAbove",
|
|
272
|
+
"daysToCoverMin",
|
|
273
|
+
"daysToCoverBelow",
|
|
274
|
+
"daysToCoverMax",
|
|
275
|
+
"settlementDate",
|
|
276
|
+
"settlementDates",
|
|
277
|
+
"settlementDateAfter",
|
|
278
|
+
"settlementDateFrom",
|
|
279
|
+
"settlementDateBefore",
|
|
280
|
+
"settlementDateTo",
|
|
281
|
+
"avgDailyVolume",
|
|
282
|
+
"avgDailyVolumeList",
|
|
283
|
+
"avgDailyVolumeAbove",
|
|
284
|
+
"avgDailyVolumeMin",
|
|
285
|
+
"avgDailyVolumeBelow",
|
|
286
|
+
"avgDailyVolumeMax",
|
|
287
|
+
"limit",
|
|
288
|
+
"sort",
|
|
289
|
+
"next",
|
|
290
|
+
]
|
|
291
|
+
)
|
|
292
|
+
serialized = handler(self)
|
|
293
|
+
m = {}
|
|
294
|
+
|
|
295
|
+
for n, f in type(self).model_fields.items():
|
|
296
|
+
k = f.alias or n
|
|
297
|
+
val = serialized.get(k, serialized.get(n))
|
|
298
|
+
|
|
299
|
+
if val != UNSET_SENTINEL:
|
|
300
|
+
if val is not None or k not in optional_fields:
|
|
301
|
+
m[k] = val
|
|
302
|
+
|
|
303
|
+
return m
|
|
304
|
+
|
|
305
|
+
|
|
306
|
+
class GetShortInterestResponseTypedDict(TypedDict):
|
|
307
|
+
http_meta: HTTPMetadataTypedDict
|
|
308
|
+
short_interest_response: NotRequired[ShortInterestResponseTypedDict]
|
|
309
|
+
r"""Successful response"""
|
|
310
|
+
|
|
311
|
+
|
|
312
|
+
class GetShortInterestResponse(BaseModel):
|
|
313
|
+
next: Callable[[], Optional[GetShortInterestResponse]]
|
|
314
|
+
|
|
315
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
316
|
+
|
|
317
|
+
short_interest_response: Optional[ShortInterestResponse] = None
|
|
318
|
+
r"""Successful response"""
|
|
319
|
+
|
|
320
|
+
@model_serializer(mode="wrap")
|
|
321
|
+
def serialize_model(self, handler):
|
|
322
|
+
optional_fields = set(["ShortInterestResponse"])
|
|
323
|
+
serialized = handler(self)
|
|
324
|
+
m = {}
|
|
325
|
+
|
|
326
|
+
for n, f in type(self).model_fields.items():
|
|
327
|
+
k = f.alias or n
|
|
328
|
+
val = serialized.get(k, serialized.get(n))
|
|
329
|
+
|
|
330
|
+
if val != UNSET_SENTINEL:
|
|
331
|
+
if val is not None or k not in optional_fields:
|
|
332
|
+
m[k] = val
|
|
333
|
+
|
|
334
|
+
return m
|