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,177 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 116de7212277
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .optionquotesresponse import OptionQuotesResponse, OptionQuotesResponseTypedDict
|
|
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 Callable, Optional
|
|
14
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class GetOptionQuotesOrder(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
18
|
+
r"""Sort order for returned records. Use asc for oldest first or desc for newest first when supported."""
|
|
19
|
+
|
|
20
|
+
ASC = "asc"
|
|
21
|
+
DESC = "desc"
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class GetOptionQuotesRequestTypedDict(TypedDict):
|
|
25
|
+
ticker: str
|
|
26
|
+
r"""Options contract ticker symbol. Enter the exact option symbol returned by option search or chain endpoints."""
|
|
27
|
+
timestamp: NotRequired[str]
|
|
28
|
+
r"""Query by timestamp (YYYY-MM-DD or nanoseconds)"""
|
|
29
|
+
timestamp_from: NotRequired[str]
|
|
30
|
+
r"""Timestamp start filter. Returns records at or after this timestamp."""
|
|
31
|
+
timestamp_after: NotRequired[str]
|
|
32
|
+
r"""Timestamp lower-bound filter. Returns records after this timestamp, excluding the timestamp itself."""
|
|
33
|
+
timestamp_to: NotRequired[str]
|
|
34
|
+
r"""Timestamp end filter. Returns records at or before this timestamp."""
|
|
35
|
+
timestamp_before: NotRequired[str]
|
|
36
|
+
r"""Timestamp upper-bound filter. Returns records before this timestamp, excluding the timestamp itself."""
|
|
37
|
+
order: NotRequired[GetOptionQuotesOrder]
|
|
38
|
+
r"""Sort order for returned records. Use asc for oldest first or desc for newest first when supported."""
|
|
39
|
+
limit: NotRequired[int]
|
|
40
|
+
r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits."""
|
|
41
|
+
sort: NotRequired[str]
|
|
42
|
+
r"""Sort field used for ordering. Massive documents this separately from `order`, so enter the provider-supported field name in the text box, for example `timestamp`."""
|
|
43
|
+
next: NotRequired[str]
|
|
44
|
+
r"""Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page."""
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
class GetOptionQuotesRequest(BaseModel):
|
|
48
|
+
ticker: Annotated[
|
|
49
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
50
|
+
]
|
|
51
|
+
r"""Options contract ticker symbol. Enter the exact option symbol returned by option search or chain endpoints."""
|
|
52
|
+
|
|
53
|
+
timestamp: Annotated[
|
|
54
|
+
Optional[str],
|
|
55
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
56
|
+
] = None
|
|
57
|
+
r"""Query by timestamp (YYYY-MM-DD or nanoseconds)"""
|
|
58
|
+
|
|
59
|
+
timestamp_from: Annotated[
|
|
60
|
+
Optional[str],
|
|
61
|
+
pydantic.Field(alias="timestampFrom"),
|
|
62
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
63
|
+
] = None
|
|
64
|
+
r"""Timestamp start filter. Returns records at or after this timestamp."""
|
|
65
|
+
|
|
66
|
+
timestamp_after: Annotated[
|
|
67
|
+
Optional[str],
|
|
68
|
+
pydantic.Field(alias="timestampAfter"),
|
|
69
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
70
|
+
] = None
|
|
71
|
+
r"""Timestamp lower-bound filter. Returns records after this timestamp, excluding the timestamp itself."""
|
|
72
|
+
|
|
73
|
+
timestamp_to: Annotated[
|
|
74
|
+
Optional[str],
|
|
75
|
+
pydantic.Field(alias="timestampTo"),
|
|
76
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
77
|
+
] = None
|
|
78
|
+
r"""Timestamp end filter. Returns records at or before this timestamp."""
|
|
79
|
+
|
|
80
|
+
timestamp_before: Annotated[
|
|
81
|
+
Optional[str],
|
|
82
|
+
pydantic.Field(alias="timestampBefore"),
|
|
83
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
84
|
+
] = None
|
|
85
|
+
r"""Timestamp upper-bound filter. Returns records before this timestamp, excluding the timestamp itself."""
|
|
86
|
+
|
|
87
|
+
order: Annotated[
|
|
88
|
+
Optional[GetOptionQuotesOrder],
|
|
89
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
90
|
+
] = GetOptionQuotesOrder.DESC
|
|
91
|
+
r"""Sort order for returned records. Use asc for oldest first or desc for newest first when supported."""
|
|
92
|
+
|
|
93
|
+
limit: Annotated[
|
|
94
|
+
Optional[int],
|
|
95
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
96
|
+
] = None
|
|
97
|
+
r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits."""
|
|
98
|
+
|
|
99
|
+
sort: Annotated[
|
|
100
|
+
Optional[str],
|
|
101
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
102
|
+
] = None
|
|
103
|
+
r"""Sort field used for ordering. Massive documents this separately from `order`, so enter the provider-supported field name in the text box, for example `timestamp`."""
|
|
104
|
+
|
|
105
|
+
next: Annotated[
|
|
106
|
+
Optional[str],
|
|
107
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
108
|
+
] = None
|
|
109
|
+
r"""Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page."""
|
|
110
|
+
|
|
111
|
+
@field_serializer("order")
|
|
112
|
+
def serialize_order(self, value):
|
|
113
|
+
if isinstance(value, str):
|
|
114
|
+
try:
|
|
115
|
+
return models.GetOptionQuotesOrder(value)
|
|
116
|
+
except ValueError:
|
|
117
|
+
return value
|
|
118
|
+
return value
|
|
119
|
+
|
|
120
|
+
@model_serializer(mode="wrap")
|
|
121
|
+
def serialize_model(self, handler):
|
|
122
|
+
optional_fields = set(
|
|
123
|
+
[
|
|
124
|
+
"timestamp",
|
|
125
|
+
"timestampFrom",
|
|
126
|
+
"timestampAfter",
|
|
127
|
+
"timestampTo",
|
|
128
|
+
"timestampBefore",
|
|
129
|
+
"order",
|
|
130
|
+
"limit",
|
|
131
|
+
"sort",
|
|
132
|
+
"next",
|
|
133
|
+
]
|
|
134
|
+
)
|
|
135
|
+
serialized = handler(self)
|
|
136
|
+
m = {}
|
|
137
|
+
|
|
138
|
+
for n, f in type(self).model_fields.items():
|
|
139
|
+
k = f.alias or n
|
|
140
|
+
val = serialized.get(k, serialized.get(n))
|
|
141
|
+
|
|
142
|
+
if val != UNSET_SENTINEL:
|
|
143
|
+
if val is not None or k not in optional_fields:
|
|
144
|
+
m[k] = val
|
|
145
|
+
|
|
146
|
+
return m
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
class GetOptionQuotesResponseTypedDict(TypedDict):
|
|
150
|
+
http_meta: HTTPMetadataTypedDict
|
|
151
|
+
option_quotes_response: NotRequired[OptionQuotesResponseTypedDict]
|
|
152
|
+
r"""Successful response"""
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
class GetOptionQuotesResponse(BaseModel):
|
|
156
|
+
next: Callable[[], Optional[GetOptionQuotesResponse]]
|
|
157
|
+
|
|
158
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
159
|
+
|
|
160
|
+
option_quotes_response: Optional[OptionQuotesResponse] = None
|
|
161
|
+
r"""Successful response"""
|
|
162
|
+
|
|
163
|
+
@model_serializer(mode="wrap")
|
|
164
|
+
def serialize_model(self, handler):
|
|
165
|
+
optional_fields = set(["OptionQuotesResponse"])
|
|
166
|
+
serialized = handler(self)
|
|
167
|
+
m = {}
|
|
168
|
+
|
|
169
|
+
for n, f in type(self).model_fields.items():
|
|
170
|
+
k = f.alias or n
|
|
171
|
+
val = serialized.get(k, serialized.get(n))
|
|
172
|
+
|
|
173
|
+
if val != UNSET_SENTINEL:
|
|
174
|
+
if val is not None or k not in optional_fields:
|
|
175
|
+
m[k] = val
|
|
176
|
+
|
|
177
|
+
return m
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 183e251a791b
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .optionsactivityresponse import (
|
|
7
|
+
OptionsActivityResponse,
|
|
8
|
+
OptionsActivityResponseTypedDict,
|
|
9
|
+
)
|
|
10
|
+
from datetime import date
|
|
11
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
12
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
13
|
+
import pydantic
|
|
14
|
+
from pydantic import model_serializer
|
|
15
|
+
from typing import Callable, Optional
|
|
16
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class GetOptionsActivityRequestTypedDict(TypedDict):
|
|
20
|
+
date_from: NotRequired[date]
|
|
21
|
+
r"""Start date for filtering options activity in YYYY-MM-DD format"""
|
|
22
|
+
date_to: NotRequired[date]
|
|
23
|
+
r"""End date for filtering options activity in YYYY-MM-DD format"""
|
|
24
|
+
tickers: NotRequired[str]
|
|
25
|
+
r"""Comma-separated list of ticker symbols to filter results"""
|
|
26
|
+
page: NotRequired[int]
|
|
27
|
+
r"""Page number for pagination (zero-based)"""
|
|
28
|
+
page_size: NotRequired[int]
|
|
29
|
+
r"""Number of results per page. Use this to control pagination size in list views. (default: 100, max: 1000)"""
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
class GetOptionsActivityRequest(BaseModel):
|
|
33
|
+
date_from: Annotated[
|
|
34
|
+
Optional[date],
|
|
35
|
+
pydantic.Field(alias="dateFrom"),
|
|
36
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
37
|
+
] = None
|
|
38
|
+
r"""Start date for filtering options activity in YYYY-MM-DD format"""
|
|
39
|
+
|
|
40
|
+
date_to: Annotated[
|
|
41
|
+
Optional[date],
|
|
42
|
+
pydantic.Field(alias="dateTo"),
|
|
43
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
44
|
+
] = None
|
|
45
|
+
r"""End date for filtering options activity in YYYY-MM-DD format"""
|
|
46
|
+
|
|
47
|
+
tickers: Annotated[
|
|
48
|
+
Optional[str],
|
|
49
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
50
|
+
] = None
|
|
51
|
+
r"""Comma-separated list of ticker symbols to filter results"""
|
|
52
|
+
|
|
53
|
+
page: Annotated[
|
|
54
|
+
Optional[int],
|
|
55
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
56
|
+
] = None
|
|
57
|
+
r"""Page number for pagination (zero-based)"""
|
|
58
|
+
|
|
59
|
+
page_size: Annotated[
|
|
60
|
+
Optional[int],
|
|
61
|
+
pydantic.Field(alias="pageSize"),
|
|
62
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
63
|
+
] = None
|
|
64
|
+
r"""Number of results per page. Use this to control pagination size in list views. (default: 100, max: 1000)"""
|
|
65
|
+
|
|
66
|
+
@model_serializer(mode="wrap")
|
|
67
|
+
def serialize_model(self, handler):
|
|
68
|
+
optional_fields = set(["dateFrom", "dateTo", "tickers", "page", "pageSize"])
|
|
69
|
+
serialized = handler(self)
|
|
70
|
+
m = {}
|
|
71
|
+
|
|
72
|
+
for n, f in type(self).model_fields.items():
|
|
73
|
+
k = f.alias or n
|
|
74
|
+
val = serialized.get(k, serialized.get(n))
|
|
75
|
+
|
|
76
|
+
if val != UNSET_SENTINEL:
|
|
77
|
+
if val is not None or k not in optional_fields:
|
|
78
|
+
m[k] = val
|
|
79
|
+
|
|
80
|
+
return m
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
class GetOptionsActivityResponseTypedDict(TypedDict):
|
|
84
|
+
http_meta: HTTPMetadataTypedDict
|
|
85
|
+
options_activity_response: NotRequired[OptionsActivityResponseTypedDict]
|
|
86
|
+
r"""Successful response"""
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
class GetOptionsActivityResponse(BaseModel):
|
|
90
|
+
next: Callable[[], Optional[GetOptionsActivityResponse]]
|
|
91
|
+
|
|
92
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
93
|
+
|
|
94
|
+
options_activity_response: Optional[OptionsActivityResponse] = None
|
|
95
|
+
r"""Successful response"""
|
|
96
|
+
|
|
97
|
+
@model_serializer(mode="wrap")
|
|
98
|
+
def serialize_model(self, handler):
|
|
99
|
+
optional_fields = set(["OptionsActivityResponse"])
|
|
100
|
+
serialized = handler(self)
|
|
101
|
+
m = {}
|
|
102
|
+
|
|
103
|
+
for n, f in type(self).model_fields.items():
|
|
104
|
+
k = f.alias or n
|
|
105
|
+
val = serialized.get(k, serialized.get(n))
|
|
106
|
+
|
|
107
|
+
if val != UNSET_SENTINEL:
|
|
108
|
+
if val is not None or k not in optional_fields:
|
|
109
|
+
m[k] = val
|
|
110
|
+
|
|
111
|
+
return m
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 81543fb41a93
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .optionsscreeneritem import OptionsScreenerItem, OptionsScreenerItemTypedDict
|
|
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 GetOptionsETFsTopVolumeRequestTypedDict(TypedDict):
|
|
16
|
+
size: NotRequired[int]
|
|
17
|
+
r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits. (optional, default 10)"""
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetOptionsETFsTopVolumeRequest(BaseModel):
|
|
21
|
+
size: Annotated[
|
|
22
|
+
Optional[int],
|
|
23
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
24
|
+
] = 10
|
|
25
|
+
r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits. (optional, default 10)"""
|
|
26
|
+
|
|
27
|
+
@model_serializer(mode="wrap")
|
|
28
|
+
def serialize_model(self, handler):
|
|
29
|
+
optional_fields = set(["size"])
|
|
30
|
+
serialized = handler(self)
|
|
31
|
+
m = {}
|
|
32
|
+
|
|
33
|
+
for n, f in type(self).model_fields.items():
|
|
34
|
+
k = f.alias or n
|
|
35
|
+
val = serialized.get(k, serialized.get(n))
|
|
36
|
+
|
|
37
|
+
if val != UNSET_SENTINEL:
|
|
38
|
+
if val is not None or k not in optional_fields:
|
|
39
|
+
m[k] = val
|
|
40
|
+
|
|
41
|
+
return m
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
class GetOptionsETFsTopVolumeResponseTypedDict(TypedDict):
|
|
45
|
+
http_meta: HTTPMetadataTypedDict
|
|
46
|
+
options_screener_items: NotRequired[List[OptionsScreenerItemTypedDict]]
|
|
47
|
+
r"""Array of option contract details (symbol, underlyingSymbol, type, strike, expiry, volume, openInterest, lastPrice, change, changePercent, bid, ask, impliedVolatility, logoUrl)."""
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
class GetOptionsETFsTopVolumeResponse(BaseModel):
|
|
51
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
52
|
+
|
|
53
|
+
options_screener_items: Optional[List[OptionsScreenerItem]] = None
|
|
54
|
+
r"""Array of option contract details (symbol, underlyingSymbol, type, strike, expiry, volume, openInterest, lastPrice, change, changePercent, bid, ask, impliedVolatility, logoUrl)."""
|
|
55
|
+
|
|
56
|
+
@model_serializer(mode="wrap")
|
|
57
|
+
def serialize_model(self, handler):
|
|
58
|
+
optional_fields = set(["OptionsScreenerItems"])
|
|
59
|
+
serialized = handler(self)
|
|
60
|
+
m = {}
|
|
61
|
+
|
|
62
|
+
for n, f in type(self).model_fields.items():
|
|
63
|
+
k = f.alias or n
|
|
64
|
+
val = serialized.get(k, serialized.get(n))
|
|
65
|
+
|
|
66
|
+
if val != UNSET_SENTINEL:
|
|
67
|
+
if val is not None or k not in optional_fields:
|
|
68
|
+
m[k] = val
|
|
69
|
+
|
|
70
|
+
return m
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 0b884e563562
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .optionsscreeneritem import OptionsScreenerItem, OptionsScreenerItemTypedDict
|
|
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 GetOptionsStocksTopGainersRequestTypedDict(TypedDict):
|
|
16
|
+
size: NotRequired[int]
|
|
17
|
+
r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits. (optional, default 10)"""
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetOptionsStocksTopGainersRequest(BaseModel):
|
|
21
|
+
size: Annotated[
|
|
22
|
+
Optional[int],
|
|
23
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
24
|
+
] = 10
|
|
25
|
+
r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits. (optional, default 10)"""
|
|
26
|
+
|
|
27
|
+
@model_serializer(mode="wrap")
|
|
28
|
+
def serialize_model(self, handler):
|
|
29
|
+
optional_fields = set(["size"])
|
|
30
|
+
serialized = handler(self)
|
|
31
|
+
m = {}
|
|
32
|
+
|
|
33
|
+
for n, f in type(self).model_fields.items():
|
|
34
|
+
k = f.alias or n
|
|
35
|
+
val = serialized.get(k, serialized.get(n))
|
|
36
|
+
|
|
37
|
+
if val != UNSET_SENTINEL:
|
|
38
|
+
if val is not None or k not in optional_fields:
|
|
39
|
+
m[k] = val
|
|
40
|
+
|
|
41
|
+
return m
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
class GetOptionsStocksTopGainersResponseTypedDict(TypedDict):
|
|
45
|
+
http_meta: HTTPMetadataTypedDict
|
|
46
|
+
options_screener_items: NotRequired[List[OptionsScreenerItemTypedDict]]
|
|
47
|
+
r"""Array of option contract details (symbol, underlyingSymbol, type, strike, expiry, volume, openInterest, lastPrice, change, changePercent, bid, ask, impliedVolatility, logoUrl)."""
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
class GetOptionsStocksTopGainersResponse(BaseModel):
|
|
51
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
52
|
+
|
|
53
|
+
options_screener_items: Optional[List[OptionsScreenerItem]] = None
|
|
54
|
+
r"""Array of option contract details (symbol, underlyingSymbol, type, strike, expiry, volume, openInterest, lastPrice, change, changePercent, bid, ask, impliedVolatility, logoUrl)."""
|
|
55
|
+
|
|
56
|
+
@model_serializer(mode="wrap")
|
|
57
|
+
def serialize_model(self, handler):
|
|
58
|
+
optional_fields = set(["OptionsScreenerItems"])
|
|
59
|
+
serialized = handler(self)
|
|
60
|
+
m = {}
|
|
61
|
+
|
|
62
|
+
for n, f in type(self).model_fields.items():
|
|
63
|
+
k = f.alias or n
|
|
64
|
+
val = serialized.get(k, serialized.get(n))
|
|
65
|
+
|
|
66
|
+
if val != UNSET_SENTINEL:
|
|
67
|
+
if val is not None or k not in optional_fields:
|
|
68
|
+
m[k] = val
|
|
69
|
+
|
|
70
|
+
return m
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 576cf5729029
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .optionsscreeneritem import OptionsScreenerItem, OptionsScreenerItemTypedDict
|
|
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 GetOptionsStocksTopVolumeRequestTypedDict(TypedDict):
|
|
16
|
+
size: NotRequired[int]
|
|
17
|
+
r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits. (optional, default 10)"""
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetOptionsStocksTopVolumeRequest(BaseModel):
|
|
21
|
+
size: Annotated[
|
|
22
|
+
Optional[int],
|
|
23
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
24
|
+
] = 10
|
|
25
|
+
r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits. (optional, default 10)"""
|
|
26
|
+
|
|
27
|
+
@model_serializer(mode="wrap")
|
|
28
|
+
def serialize_model(self, handler):
|
|
29
|
+
optional_fields = set(["size"])
|
|
30
|
+
serialized = handler(self)
|
|
31
|
+
m = {}
|
|
32
|
+
|
|
33
|
+
for n, f in type(self).model_fields.items():
|
|
34
|
+
k = f.alias or n
|
|
35
|
+
val = serialized.get(k, serialized.get(n))
|
|
36
|
+
|
|
37
|
+
if val != UNSET_SENTINEL:
|
|
38
|
+
if val is not None or k not in optional_fields:
|
|
39
|
+
m[k] = val
|
|
40
|
+
|
|
41
|
+
return m
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
class GetOptionsStocksTopVolumeResponseTypedDict(TypedDict):
|
|
45
|
+
http_meta: HTTPMetadataTypedDict
|
|
46
|
+
options_screener_items: NotRequired[List[OptionsScreenerItemTypedDict]]
|
|
47
|
+
r"""Array of option contract details (symbol, underlyingSymbol, type, strike, expiry, volume, openInterest, lastPrice, change, changePercent, bid, ask, impliedVolatility, logoUrl)."""
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
class GetOptionsStocksTopVolumeResponse(BaseModel):
|
|
51
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
52
|
+
|
|
53
|
+
options_screener_items: Optional[List[OptionsScreenerItem]] = None
|
|
54
|
+
r"""Array of option contract details (symbol, underlyingSymbol, type, strike, expiry, volume, openInterest, lastPrice, change, changePercent, bid, ask, impliedVolatility, logoUrl)."""
|
|
55
|
+
|
|
56
|
+
@model_serializer(mode="wrap")
|
|
57
|
+
def serialize_model(self, handler):
|
|
58
|
+
optional_fields = set(["OptionsScreenerItems"])
|
|
59
|
+
serialized = handler(self)
|
|
60
|
+
m = {}
|
|
61
|
+
|
|
62
|
+
for n, f in type(self).model_fields.items():
|
|
63
|
+
k = f.alias or n
|
|
64
|
+
val = serialized.get(k, serialized.get(n))
|
|
65
|
+
|
|
66
|
+
if val != UNSET_SENTINEL:
|
|
67
|
+
if val is not None or k not in optional_fields:
|
|
68
|
+
m[k] = val
|
|
69
|
+
|
|
70
|
+
return m
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: f6466f8c9dd1
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .optionsunusualactivityresponse import (
|
|
7
|
+
OptionsUnusualActivityResponse,
|
|
8
|
+
OptionsUnusualActivityResponseTypedDict,
|
|
9
|
+
)
|
|
10
|
+
from enum import Enum
|
|
11
|
+
from finance_dev import models, utils
|
|
12
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
13
|
+
from finance_dev.utils import FieldMetadata, PathParamMetadata, QueryParamMetadata
|
|
14
|
+
import pydantic
|
|
15
|
+
from pydantic import field_serializer, model_serializer
|
|
16
|
+
from typing import Optional
|
|
17
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class Source(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
21
|
+
r"""Data source. Values are case-insensitive."""
|
|
22
|
+
|
|
23
|
+
REALTIME = "realtime"
|
|
24
|
+
DELAYED = "delayed"
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class GetOptionsUnusualActivityRequestTypedDict(TypedDict):
|
|
28
|
+
symbol: str
|
|
29
|
+
r"""Underlying stock symbol (e.g. AAPL, TSLA)."""
|
|
30
|
+
source: NotRequired[Source]
|
|
31
|
+
r"""Data source. Values are case-insensitive."""
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class GetOptionsUnusualActivityRequest(BaseModel):
|
|
35
|
+
symbol: Annotated[
|
|
36
|
+
str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
|
|
37
|
+
]
|
|
38
|
+
r"""Underlying stock symbol (e.g. AAPL, TSLA)."""
|
|
39
|
+
|
|
40
|
+
source: Annotated[
|
|
41
|
+
Optional[Source],
|
|
42
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
43
|
+
] = Source.DELAYED
|
|
44
|
+
r"""Data source. Values are case-insensitive."""
|
|
45
|
+
|
|
46
|
+
@field_serializer("source")
|
|
47
|
+
def serialize_source(self, value):
|
|
48
|
+
if isinstance(value, str):
|
|
49
|
+
try:
|
|
50
|
+
return models.Source(value)
|
|
51
|
+
except ValueError:
|
|
52
|
+
return value
|
|
53
|
+
return value
|
|
54
|
+
|
|
55
|
+
@model_serializer(mode="wrap")
|
|
56
|
+
def serialize_model(self, handler):
|
|
57
|
+
optional_fields = set(["source"])
|
|
58
|
+
serialized = handler(self)
|
|
59
|
+
m = {}
|
|
60
|
+
|
|
61
|
+
for n, f in type(self).model_fields.items():
|
|
62
|
+
k = f.alias or n
|
|
63
|
+
val = serialized.get(k, serialized.get(n))
|
|
64
|
+
|
|
65
|
+
if val != UNSET_SENTINEL:
|
|
66
|
+
if val is not None or k not in optional_fields:
|
|
67
|
+
m[k] = val
|
|
68
|
+
|
|
69
|
+
return m
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
class GetOptionsUnusualActivityResponseTypedDict(TypedDict):
|
|
73
|
+
http_meta: HTTPMetadataTypedDict
|
|
74
|
+
options_unusual_activity_response: NotRequired[
|
|
75
|
+
OptionsUnusualActivityResponseTypedDict
|
|
76
|
+
]
|
|
77
|
+
r"""Options unusual activity: object with trades array. Each trade has symbol, timestamp, type (e.g. block), total_value, total_size, average_price, contract, ask_at_execution, bid_at_execution, sentiment, underlying_price_at_execution."""
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
class GetOptionsUnusualActivityResponse(BaseModel):
|
|
81
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
82
|
+
|
|
83
|
+
options_unusual_activity_response: Optional[OptionsUnusualActivityResponse] = None
|
|
84
|
+
r"""Options unusual activity: object with trades array. Each trade has symbol, timestamp, type (e.g. block), total_value, total_size, average_price, contract, ask_at_execution, bid_at_execution, sentiment, underlying_price_at_execution."""
|
|
85
|
+
|
|
86
|
+
@model_serializer(mode="wrap")
|
|
87
|
+
def serialize_model(self, handler):
|
|
88
|
+
optional_fields = set(["OptionsUnusualActivityResponse"])
|
|
89
|
+
serialized = handler(self)
|
|
90
|
+
m = {}
|
|
91
|
+
|
|
92
|
+
for n, f in type(self).model_fields.items():
|
|
93
|
+
k = f.alias or n
|
|
94
|
+
val = serialized.get(k, serialized.get(n))
|
|
95
|
+
|
|
96
|
+
if val != UNSET_SENTINEL:
|
|
97
|
+
if val is not None or k not in optional_fields:
|
|
98
|
+
m[k] = val
|
|
99
|
+
|
|
100
|
+
return m
|