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,131 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: d1edab16d9c3
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from datetime import date
|
|
6
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
7
|
+
import pydantic
|
|
8
|
+
from pydantic import model_serializer
|
|
9
|
+
from typing import List, Optional
|
|
10
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class CallTypedDict(TypedDict):
|
|
14
|
+
strike_price: NotRequired[float]
|
|
15
|
+
r"""Strike price"""
|
|
16
|
+
symbol: NotRequired[str]
|
|
17
|
+
r"""OCC option ticker symbol"""
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class Call(BaseModel):
|
|
21
|
+
strike_price: Annotated[Optional[float], pydantic.Field(alias="strikePrice")] = None
|
|
22
|
+
r"""Strike price"""
|
|
23
|
+
|
|
24
|
+
symbol: Optional[str] = None
|
|
25
|
+
r"""OCC option ticker symbol"""
|
|
26
|
+
|
|
27
|
+
@model_serializer(mode="wrap")
|
|
28
|
+
def serialize_model(self, handler):
|
|
29
|
+
optional_fields = set(["strikePrice", "symbol"])
|
|
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 PutTypedDict(TypedDict):
|
|
45
|
+
strike_price: NotRequired[float]
|
|
46
|
+
r"""Strike price"""
|
|
47
|
+
symbol: NotRequired[str]
|
|
48
|
+
r"""OCC option ticker symbol"""
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
class Put(BaseModel):
|
|
52
|
+
strike_price: Annotated[Optional[float], pydantic.Field(alias="strikePrice")] = None
|
|
53
|
+
r"""Strike price"""
|
|
54
|
+
|
|
55
|
+
symbol: Optional[str] = None
|
|
56
|
+
r"""OCC option ticker symbol"""
|
|
57
|
+
|
|
58
|
+
@model_serializer(mode="wrap")
|
|
59
|
+
def serialize_model(self, handler):
|
|
60
|
+
optional_fields = set(["strikePrice", "symbol"])
|
|
61
|
+
serialized = handler(self)
|
|
62
|
+
m = {}
|
|
63
|
+
|
|
64
|
+
for n, f in type(self).model_fields.items():
|
|
65
|
+
k = f.alias or n
|
|
66
|
+
val = serialized.get(k, serialized.get(n))
|
|
67
|
+
|
|
68
|
+
if val != UNSET_SENTINEL:
|
|
69
|
+
if val is not None or k not in optional_fields:
|
|
70
|
+
m[k] = val
|
|
71
|
+
|
|
72
|
+
return m
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
class OptionContractsResponseTypedDict(TypedDict):
|
|
76
|
+
r"""Response containing the call and put option contracts for an underlying symbol and expiration date."""
|
|
77
|
+
|
|
78
|
+
calls: NotRequired[List[CallTypedDict]]
|
|
79
|
+
r"""Call option contracts for the expiration date"""
|
|
80
|
+
expiry_date: NotRequired[date]
|
|
81
|
+
r"""Expiration date YYYY-MM-DD"""
|
|
82
|
+
puts: NotRequired[List[PutTypedDict]]
|
|
83
|
+
r"""Put option contracts for the expiration date"""
|
|
84
|
+
symbol: NotRequired[str]
|
|
85
|
+
r"""Underlying symbol"""
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
class OptionContractsResponse(BaseModel):
|
|
89
|
+
r"""Response containing the call and put option contracts for an underlying symbol and expiration date."""
|
|
90
|
+
|
|
91
|
+
calls: Optional[List[Call]] = None
|
|
92
|
+
r"""Call option contracts for the expiration date"""
|
|
93
|
+
|
|
94
|
+
expiry_date: Annotated[Optional[date], pydantic.Field(alias="expiryDate")] = None
|
|
95
|
+
r"""Expiration date YYYY-MM-DD"""
|
|
96
|
+
|
|
97
|
+
puts: Optional[List[Put]] = None
|
|
98
|
+
r"""Put option contracts for the expiration date"""
|
|
99
|
+
|
|
100
|
+
symbol: Optional[str] = None
|
|
101
|
+
r"""Underlying symbol"""
|
|
102
|
+
|
|
103
|
+
@model_serializer(mode="wrap")
|
|
104
|
+
def serialize_model(self, handler):
|
|
105
|
+
optional_fields = set(["calls", "expiryDate", "puts", "symbol"])
|
|
106
|
+
serialized = handler(self)
|
|
107
|
+
m = {}
|
|
108
|
+
|
|
109
|
+
for n, f in type(self).model_fields.items():
|
|
110
|
+
k = f.alias or n
|
|
111
|
+
val = serialized.get(k, serialized.get(n))
|
|
112
|
+
|
|
113
|
+
if val != UNSET_SENTINEL:
|
|
114
|
+
if val is not None or k not in optional_fields:
|
|
115
|
+
m[k] = val
|
|
116
|
+
|
|
117
|
+
return m
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
try:
|
|
121
|
+
Call.model_rebuild()
|
|
122
|
+
except NameError:
|
|
123
|
+
pass
|
|
124
|
+
try:
|
|
125
|
+
Put.model_rebuild()
|
|
126
|
+
except NameError:
|
|
127
|
+
pass
|
|
128
|
+
try:
|
|
129
|
+
OptionContractsResponse.model_rebuild()
|
|
130
|
+
except NameError:
|
|
131
|
+
pass
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 2660a2f8936f
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
6
|
+
import pydantic
|
|
7
|
+
from pydantic import model_serializer
|
|
8
|
+
from typing import Optional
|
|
9
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class OptionDetailsDTOTypedDict(TypedDict):
|
|
13
|
+
r"""One option contract's pricing snapshot from GET /v1/marketdata/options/details. Numeric prices are returned as JSON numbers."""
|
|
14
|
+
|
|
15
|
+
ask_price: NotRequired[float]
|
|
16
|
+
r"""Current best ask price."""
|
|
17
|
+
bid_price: NotRequired[float]
|
|
18
|
+
r"""Current best bid price."""
|
|
19
|
+
close_price: NotRequired[float]
|
|
20
|
+
r"""Previous session's closing price."""
|
|
21
|
+
last_price: NotRequired[float]
|
|
22
|
+
r"""Last traded price for the contract."""
|
|
23
|
+
mid_price: NotRequired[float]
|
|
24
|
+
r"""Midpoint between the bid and ask prices."""
|
|
25
|
+
symbol: NotRequired[str]
|
|
26
|
+
r"""OSI option symbol for the contract."""
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class OptionDetailsDTO(BaseModel):
|
|
30
|
+
r"""One option contract's pricing snapshot from GET /v1/marketdata/options/details. Numeric prices are returned as JSON numbers."""
|
|
31
|
+
|
|
32
|
+
ask_price: Annotated[Optional[float], pydantic.Field(alias="askPrice")] = None
|
|
33
|
+
r"""Current best ask price."""
|
|
34
|
+
|
|
35
|
+
bid_price: Annotated[Optional[float], pydantic.Field(alias="bidPrice")] = None
|
|
36
|
+
r"""Current best bid price."""
|
|
37
|
+
|
|
38
|
+
close_price: Annotated[Optional[float], pydantic.Field(alias="closePrice")] = None
|
|
39
|
+
r"""Previous session's closing price."""
|
|
40
|
+
|
|
41
|
+
last_price: Annotated[Optional[float], pydantic.Field(alias="lastPrice")] = None
|
|
42
|
+
r"""Last traded price for the contract."""
|
|
43
|
+
|
|
44
|
+
mid_price: Annotated[Optional[float], pydantic.Field(alias="midPrice")] = None
|
|
45
|
+
r"""Midpoint between the bid and ask prices."""
|
|
46
|
+
|
|
47
|
+
symbol: Optional[str] = None
|
|
48
|
+
r"""OSI option symbol for the contract."""
|
|
49
|
+
|
|
50
|
+
@model_serializer(mode="wrap")
|
|
51
|
+
def serialize_model(self, handler):
|
|
52
|
+
optional_fields = set(
|
|
53
|
+
["askPrice", "bidPrice", "closePrice", "lastPrice", "midPrice", "symbol"]
|
|
54
|
+
)
|
|
55
|
+
serialized = handler(self)
|
|
56
|
+
m = {}
|
|
57
|
+
|
|
58
|
+
for n, f in type(self).model_fields.items():
|
|
59
|
+
k = f.alias or n
|
|
60
|
+
val = serialized.get(k, serialized.get(n))
|
|
61
|
+
|
|
62
|
+
if val != UNSET_SENTINEL:
|
|
63
|
+
if val is not None or k not in optional_fields:
|
|
64
|
+
m[k] = val
|
|
65
|
+
|
|
66
|
+
return m
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
try:
|
|
70
|
+
OptionDetailsDTO.model_rebuild()
|
|
71
|
+
except NameError:
|
|
72
|
+
pass
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 5fee5b681dfb
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from datetime import date
|
|
6
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
7
|
+
import pydantic
|
|
8
|
+
from pydantic import model_serializer
|
|
9
|
+
from typing import List, Optional
|
|
10
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class OptionExpiryDatesResponseTypedDict(TypedDict):
|
|
14
|
+
r"""Response containing the option expiration dates for an underlying symbol."""
|
|
15
|
+
|
|
16
|
+
expiry_dates: NotRequired[List[date]]
|
|
17
|
+
r"""List of expiration dates in YYYY-MM-DD format"""
|
|
18
|
+
symbol: NotRequired[str]
|
|
19
|
+
r"""Underlying symbol"""
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class OptionExpiryDatesResponse(BaseModel):
|
|
23
|
+
r"""Response containing the option expiration dates for an underlying symbol."""
|
|
24
|
+
|
|
25
|
+
expiry_dates: Annotated[
|
|
26
|
+
Optional[List[date]], pydantic.Field(alias="expiryDates")
|
|
27
|
+
] = None
|
|
28
|
+
r"""List of expiration dates in YYYY-MM-DD format"""
|
|
29
|
+
|
|
30
|
+
symbol: Optional[str] = None
|
|
31
|
+
r"""Underlying symbol"""
|
|
32
|
+
|
|
33
|
+
@model_serializer(mode="wrap")
|
|
34
|
+
def serialize_model(self, handler):
|
|
35
|
+
optional_fields = set(["expiryDates", "symbol"])
|
|
36
|
+
serialized = handler(self)
|
|
37
|
+
m = {}
|
|
38
|
+
|
|
39
|
+
for n, f in type(self).model_fields.items():
|
|
40
|
+
k = f.alias or n
|
|
41
|
+
val = serialized.get(k, serialized.get(n))
|
|
42
|
+
|
|
43
|
+
if val != UNSET_SENTINEL:
|
|
44
|
+
if val is not None or k not in optional_fields:
|
|
45
|
+
m[k] = val
|
|
46
|
+
|
|
47
|
+
return m
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
try:
|
|
51
|
+
OptionExpiryDatesResponse.model_rebuild()
|
|
52
|
+
except NameError:
|
|
53
|
+
pass
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 48276e4f7bf1
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
6
|
+
import pydantic
|
|
7
|
+
from pydantic import model_serializer
|
|
8
|
+
from typing import List, Optional
|
|
9
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class OptionLastTradeResponseResultsTypedDict(TypedDict):
|
|
13
|
+
r"""Last options trade object"""
|
|
14
|
+
|
|
15
|
+
conditions: NotRequired[List[int]]
|
|
16
|
+
r"""Trade conditions"""
|
|
17
|
+
correction: NotRequired[int]
|
|
18
|
+
r"""Correction indicator"""
|
|
19
|
+
exchange: NotRequired[int]
|
|
20
|
+
r"""Numeric exchange identifier supplied by the market data provider."""
|
|
21
|
+
id: NotRequired[str]
|
|
22
|
+
r"""Trade ID"""
|
|
23
|
+
participant_timestamp: NotRequired[int]
|
|
24
|
+
r"""Participant timestamp"""
|
|
25
|
+
price: NotRequired[float]
|
|
26
|
+
r"""Trade price"""
|
|
27
|
+
sequence_number: NotRequired[int]
|
|
28
|
+
r"""Sequence number"""
|
|
29
|
+
sip_timestamp: NotRequired[int]
|
|
30
|
+
r"""SIP timestamp"""
|
|
31
|
+
size: NotRequired[float]
|
|
32
|
+
r"""Trade size (contracts)"""
|
|
33
|
+
tape: NotRequired[int]
|
|
34
|
+
r"""Tape"""
|
|
35
|
+
ticker: NotRequired[str]
|
|
36
|
+
r"""Options contract ticker symbol. Enter the exact option symbol returned by option search or chain endpoints."""
|
|
37
|
+
trf_id: NotRequired[int]
|
|
38
|
+
r"""TRF ID"""
|
|
39
|
+
trf_timestamp: NotRequired[int]
|
|
40
|
+
r"""TRF timestamp"""
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
class OptionLastTradeResponseResults(BaseModel):
|
|
44
|
+
r"""Last options trade object"""
|
|
45
|
+
|
|
46
|
+
conditions: Optional[List[int]] = None
|
|
47
|
+
r"""Trade conditions"""
|
|
48
|
+
|
|
49
|
+
correction: Optional[int] = None
|
|
50
|
+
r"""Correction indicator"""
|
|
51
|
+
|
|
52
|
+
exchange: Optional[int] = None
|
|
53
|
+
r"""Numeric exchange identifier supplied by the market data provider."""
|
|
54
|
+
|
|
55
|
+
id: Optional[str] = None
|
|
56
|
+
r"""Trade ID"""
|
|
57
|
+
|
|
58
|
+
participant_timestamp: Annotated[
|
|
59
|
+
Optional[int], pydantic.Field(alias="participantTimestamp")
|
|
60
|
+
] = None
|
|
61
|
+
r"""Participant timestamp"""
|
|
62
|
+
|
|
63
|
+
price: Optional[float] = None
|
|
64
|
+
r"""Trade price"""
|
|
65
|
+
|
|
66
|
+
sequence_number: Annotated[
|
|
67
|
+
Optional[int], pydantic.Field(alias="sequenceNumber")
|
|
68
|
+
] = None
|
|
69
|
+
r"""Sequence number"""
|
|
70
|
+
|
|
71
|
+
sip_timestamp: Annotated[Optional[int], pydantic.Field(alias="sipTimestamp")] = None
|
|
72
|
+
r"""SIP timestamp"""
|
|
73
|
+
|
|
74
|
+
size: Optional[float] = None
|
|
75
|
+
r"""Trade size (contracts)"""
|
|
76
|
+
|
|
77
|
+
tape: Optional[int] = None
|
|
78
|
+
r"""Tape"""
|
|
79
|
+
|
|
80
|
+
ticker: Optional[str] = None
|
|
81
|
+
r"""Options contract ticker symbol. Enter the exact option symbol returned by option search or chain endpoints."""
|
|
82
|
+
|
|
83
|
+
trf_id: Annotated[Optional[int], pydantic.Field(alias="trfId")] = None
|
|
84
|
+
r"""TRF ID"""
|
|
85
|
+
|
|
86
|
+
trf_timestamp: Annotated[Optional[int], pydantic.Field(alias="trfTimestamp")] = None
|
|
87
|
+
r"""TRF timestamp"""
|
|
88
|
+
|
|
89
|
+
@model_serializer(mode="wrap")
|
|
90
|
+
def serialize_model(self, handler):
|
|
91
|
+
optional_fields = set(
|
|
92
|
+
[
|
|
93
|
+
"conditions",
|
|
94
|
+
"correction",
|
|
95
|
+
"exchange",
|
|
96
|
+
"id",
|
|
97
|
+
"participantTimestamp",
|
|
98
|
+
"price",
|
|
99
|
+
"sequenceNumber",
|
|
100
|
+
"sipTimestamp",
|
|
101
|
+
"size",
|
|
102
|
+
"tape",
|
|
103
|
+
"ticker",
|
|
104
|
+
"trfId",
|
|
105
|
+
"trfTimestamp",
|
|
106
|
+
]
|
|
107
|
+
)
|
|
108
|
+
serialized = handler(self)
|
|
109
|
+
m = {}
|
|
110
|
+
|
|
111
|
+
for n, f in type(self).model_fields.items():
|
|
112
|
+
k = f.alias or n
|
|
113
|
+
val = serialized.get(k, serialized.get(n))
|
|
114
|
+
|
|
115
|
+
if val != UNSET_SENTINEL:
|
|
116
|
+
if val is not None or k not in optional_fields:
|
|
117
|
+
m[k] = val
|
|
118
|
+
|
|
119
|
+
return m
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
class OptionLastTradeResponseTypedDict(TypedDict):
|
|
123
|
+
r"""Most recent trade for an options contract."""
|
|
124
|
+
|
|
125
|
+
request_id: NotRequired[str]
|
|
126
|
+
r"""Unique request ID"""
|
|
127
|
+
results: NotRequired[OptionLastTradeResponseResultsTypedDict]
|
|
128
|
+
r"""Last options trade object"""
|
|
129
|
+
status: NotRequired[str]
|
|
130
|
+
r"""Status string from the upstream data provider — typically `OK` for a successful response. Treat any other value as an error indicator alongside the HTTP status code."""
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
class OptionLastTradeResponse(BaseModel):
|
|
134
|
+
r"""Most recent trade for an options contract."""
|
|
135
|
+
|
|
136
|
+
request_id: Annotated[Optional[str], pydantic.Field(alias="requestId")] = None
|
|
137
|
+
r"""Unique request ID"""
|
|
138
|
+
|
|
139
|
+
results: Optional[OptionLastTradeResponseResults] = None
|
|
140
|
+
r"""Last options trade object"""
|
|
141
|
+
|
|
142
|
+
status: Optional[str] = None
|
|
143
|
+
r"""Status string from the upstream data provider — typically `OK` for a successful response. Treat any other value as an error indicator alongside the HTTP status code."""
|
|
144
|
+
|
|
145
|
+
@model_serializer(mode="wrap")
|
|
146
|
+
def serialize_model(self, handler):
|
|
147
|
+
optional_fields = set(["requestId", "results", "status"])
|
|
148
|
+
serialized = handler(self)
|
|
149
|
+
m = {}
|
|
150
|
+
|
|
151
|
+
for n, f in type(self).model_fields.items():
|
|
152
|
+
k = f.alias or n
|
|
153
|
+
val = serialized.get(k, serialized.get(n))
|
|
154
|
+
|
|
155
|
+
if val != UNSET_SENTINEL:
|
|
156
|
+
if val is not None or k not in optional_fields:
|
|
157
|
+
m[k] = val
|
|
158
|
+
|
|
159
|
+
return m
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
try:
|
|
163
|
+
OptionLastTradeResponseResults.model_rebuild()
|
|
164
|
+
except NameError:
|
|
165
|
+
pass
|
|
166
|
+
try:
|
|
167
|
+
OptionLastTradeResponse.model_rebuild()
|
|
168
|
+
except NameError:
|
|
169
|
+
pass
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 7df7aed2b328
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
6
|
+
import pydantic
|
|
7
|
+
from pydantic import model_serializer
|
|
8
|
+
from typing import Optional
|
|
9
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class OptionOpenCloseResponseTypedDict(TypedDict):
|
|
13
|
+
r"""Daily open, high, low, close and volume for an option contract on a given date, including pre-market and after-hours prices."""
|
|
14
|
+
|
|
15
|
+
after_hours: NotRequired[float]
|
|
16
|
+
r"""Last traded price in after-hours session"""
|
|
17
|
+
close: NotRequired[float]
|
|
18
|
+
r"""Closing price for the trading session"""
|
|
19
|
+
date_: NotRequired[str]
|
|
20
|
+
r"""Trade date in YYYY-MM-DD format"""
|
|
21
|
+
high: NotRequired[float]
|
|
22
|
+
r"""Highest price reached during the trading session"""
|
|
23
|
+
low: NotRequired[float]
|
|
24
|
+
r"""Lowest price reached during the trading session"""
|
|
25
|
+
open: NotRequired[float]
|
|
26
|
+
r"""Opening price for the trading session"""
|
|
27
|
+
pre_market: NotRequired[float]
|
|
28
|
+
r"""Last traded price in pre-market session"""
|
|
29
|
+
ticker: NotRequired[str]
|
|
30
|
+
r"""OCC option ticker symbol"""
|
|
31
|
+
volume: NotRequired[float]
|
|
32
|
+
r"""Total number of contracts traded during the session"""
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class OptionOpenCloseResponse(BaseModel):
|
|
36
|
+
r"""Daily open, high, low, close and volume for an option contract on a given date, including pre-market and after-hours prices."""
|
|
37
|
+
|
|
38
|
+
after_hours: Annotated[Optional[float], pydantic.Field(alias="afterHours")] = None
|
|
39
|
+
r"""Last traded price in after-hours session"""
|
|
40
|
+
|
|
41
|
+
close: Optional[float] = None
|
|
42
|
+
r"""Closing price for the trading session"""
|
|
43
|
+
|
|
44
|
+
date_: Annotated[Optional[str], pydantic.Field(alias="date")] = None
|
|
45
|
+
r"""Trade date in YYYY-MM-DD format"""
|
|
46
|
+
|
|
47
|
+
high: Optional[float] = None
|
|
48
|
+
r"""Highest price reached during the trading session"""
|
|
49
|
+
|
|
50
|
+
low: Optional[float] = None
|
|
51
|
+
r"""Lowest price reached during the trading session"""
|
|
52
|
+
|
|
53
|
+
open: Optional[float] = None
|
|
54
|
+
r"""Opening price for the trading session"""
|
|
55
|
+
|
|
56
|
+
pre_market: Annotated[Optional[float], pydantic.Field(alias="preMarket")] = None
|
|
57
|
+
r"""Last traded price in pre-market session"""
|
|
58
|
+
|
|
59
|
+
ticker: Optional[str] = None
|
|
60
|
+
r"""OCC option ticker symbol"""
|
|
61
|
+
|
|
62
|
+
volume: Optional[float] = None
|
|
63
|
+
r"""Total number of contracts traded during the session"""
|
|
64
|
+
|
|
65
|
+
@model_serializer(mode="wrap")
|
|
66
|
+
def serialize_model(self, handler):
|
|
67
|
+
optional_fields = set(
|
|
68
|
+
[
|
|
69
|
+
"afterHours",
|
|
70
|
+
"close",
|
|
71
|
+
"date",
|
|
72
|
+
"high",
|
|
73
|
+
"low",
|
|
74
|
+
"open",
|
|
75
|
+
"preMarket",
|
|
76
|
+
"ticker",
|
|
77
|
+
"volume",
|
|
78
|
+
]
|
|
79
|
+
)
|
|
80
|
+
serialized = handler(self)
|
|
81
|
+
m = {}
|
|
82
|
+
|
|
83
|
+
for n, f in type(self).model_fields.items():
|
|
84
|
+
k = f.alias or n
|
|
85
|
+
val = serialized.get(k, serialized.get(n))
|
|
86
|
+
|
|
87
|
+
if val != UNSET_SENTINEL:
|
|
88
|
+
if val is not None or k not in optional_fields:
|
|
89
|
+
m[k] = val
|
|
90
|
+
|
|
91
|
+
return m
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
try:
|
|
95
|
+
OptionOpenCloseResponse.model_rebuild()
|
|
96
|
+
except NameError:
|
|
97
|
+
pass
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 7504755158c1
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
6
|
+
import pydantic
|
|
7
|
+
from pydantic import model_serializer
|
|
8
|
+
from typing import Optional
|
|
9
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class OptionPreviousDayResponseTypedDict(TypedDict):
|
|
13
|
+
r"""Previous trading session OHLC bar for an option contract."""
|
|
14
|
+
|
|
15
|
+
close: float
|
|
16
|
+
r"""Closing trade price of the contract at the end of the previous regular trading session, in U.S. dollars per contract."""
|
|
17
|
+
high: float
|
|
18
|
+
r"""Highest trade price reached during the previous regular trading session, in U.S. dollars per contract."""
|
|
19
|
+
low: float
|
|
20
|
+
r"""Lowest trade price reached during the previous regular trading session, in U.S. dollars per contract."""
|
|
21
|
+
open: float
|
|
22
|
+
r"""Opening trade price of the contract during the previous regular trading session, in U.S. dollars per contract."""
|
|
23
|
+
ticker: str
|
|
24
|
+
r"""Canonical OCC/OSI option symbol the data is for (always returned in uppercase, without the `O:` prefix even if you sent one)."""
|
|
25
|
+
volume: float
|
|
26
|
+
r"""Total number of contracts that traded during the previous regular trading session. Higher volume usually means tighter bid/ask spreads and easier fills."""
|
|
27
|
+
timestamp: NotRequired[int]
|
|
28
|
+
r"""When the bar applies to, as a Unix timestamp in **milliseconds** (UTC). Omitted if the upstream source did not provide it."""
|
|
29
|
+
transaction_count: NotRequired[int]
|
|
30
|
+
r"""Number of individual trade prints that made up the previous session's bar. (Each transaction can be many contracts — see `volume` for total contract count.) Omitted if the upstream source did not provide it."""
|
|
31
|
+
volume_weighted: NotRequired[float]
|
|
32
|
+
r"""Volume-Weighted Average Price (VWAP) for the previous session — the average trade price weighted by contract size. Useful as a 'fair' reference price for the day. Omitted if the upstream source did not provide it."""
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class OptionPreviousDayResponse(BaseModel):
|
|
36
|
+
r"""Previous trading session OHLC bar for an option contract."""
|
|
37
|
+
|
|
38
|
+
close: float
|
|
39
|
+
r"""Closing trade price of the contract at the end of the previous regular trading session, in U.S. dollars per contract."""
|
|
40
|
+
|
|
41
|
+
high: float
|
|
42
|
+
r"""Highest trade price reached during the previous regular trading session, in U.S. dollars per contract."""
|
|
43
|
+
|
|
44
|
+
low: float
|
|
45
|
+
r"""Lowest trade price reached during the previous regular trading session, in U.S. dollars per contract."""
|
|
46
|
+
|
|
47
|
+
open: float
|
|
48
|
+
r"""Opening trade price of the contract during the previous regular trading session, in U.S. dollars per contract."""
|
|
49
|
+
|
|
50
|
+
ticker: str
|
|
51
|
+
r"""Canonical OCC/OSI option symbol the data is for (always returned in uppercase, without the `O:` prefix even if you sent one)."""
|
|
52
|
+
|
|
53
|
+
volume: float
|
|
54
|
+
r"""Total number of contracts that traded during the previous regular trading session. Higher volume usually means tighter bid/ask spreads and easier fills."""
|
|
55
|
+
|
|
56
|
+
timestamp: Optional[int] = None
|
|
57
|
+
r"""When the bar applies to, as a Unix timestamp in **milliseconds** (UTC). Omitted if the upstream source did not provide it."""
|
|
58
|
+
|
|
59
|
+
transaction_count: Annotated[
|
|
60
|
+
Optional[int], pydantic.Field(alias="transactionCount")
|
|
61
|
+
] = None
|
|
62
|
+
r"""Number of individual trade prints that made up the previous session's bar. (Each transaction can be many contracts — see `volume` for total contract count.) Omitted if the upstream source did not provide it."""
|
|
63
|
+
|
|
64
|
+
volume_weighted: Annotated[
|
|
65
|
+
Optional[float], pydantic.Field(alias="volumeWeighted")
|
|
66
|
+
] = None
|
|
67
|
+
r"""Volume-Weighted Average Price (VWAP) for the previous session — the average trade price weighted by contract size. Useful as a 'fair' reference price for the day. Omitted if the upstream source did not provide it."""
|
|
68
|
+
|
|
69
|
+
@model_serializer(mode="wrap")
|
|
70
|
+
def serialize_model(self, handler):
|
|
71
|
+
optional_fields = set(["timestamp", "transactionCount", "volumeWeighted"])
|
|
72
|
+
serialized = handler(self)
|
|
73
|
+
m = {}
|
|
74
|
+
|
|
75
|
+
for n, f in type(self).model_fields.items():
|
|
76
|
+
k = f.alias or n
|
|
77
|
+
val = serialized.get(k, serialized.get(n))
|
|
78
|
+
|
|
79
|
+
if val != UNSET_SENTINEL:
|
|
80
|
+
if val is not None or k not in optional_fields:
|
|
81
|
+
m[k] = val
|
|
82
|
+
|
|
83
|
+
return m
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
try:
|
|
87
|
+
OptionPreviousDayResponse.model_rebuild()
|
|
88
|
+
except NameError:
|
|
89
|
+
pass
|