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,244 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: d8379f1eb73a
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .optionchainsnapshotresponse import (
|
|
7
|
+
OptionChainSnapshotResponse,
|
|
8
|
+
OptionChainSnapshotResponseTypedDict,
|
|
9
|
+
)
|
|
10
|
+
from datetime import date
|
|
11
|
+
from enum import Enum
|
|
12
|
+
from finance_dev import models, utils
|
|
13
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
14
|
+
from finance_dev.utils import FieldMetadata, PathParamMetadata, QueryParamMetadata
|
|
15
|
+
import pydantic
|
|
16
|
+
from pydantic import field_serializer, model_serializer
|
|
17
|
+
from typing import Callable, Optional
|
|
18
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class GetOptionChainSnapshotOrder(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
22
|
+
r"""Sort order for returned records. Use asc for oldest first or desc for newest first when supported. for results."""
|
|
23
|
+
|
|
24
|
+
ASC = "asc"
|
|
25
|
+
DESC = "desc"
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class GetOptionChainSnapshotRequestTypedDict(TypedDict):
|
|
29
|
+
underlying_asset: str
|
|
30
|
+
r"""Underlying equity symbol (for example AAPL)."""
|
|
31
|
+
strike_price: NotRequired[str]
|
|
32
|
+
r"""Filter by exact strike price (numeric string)."""
|
|
33
|
+
expiration_date: NotRequired[date]
|
|
34
|
+
r"""Filter by expiration date (typically YYYY-MM-DD)."""
|
|
35
|
+
contract_type: NotRequired[str]
|
|
36
|
+
r"""Filter by contract type (for example call or put)."""
|
|
37
|
+
strike_price_gte: NotRequired[str]
|
|
38
|
+
r"""Strike price greater than or equal to this value."""
|
|
39
|
+
strike_price_gt: NotRequired[str]
|
|
40
|
+
r"""Strike price strictly greater than this value."""
|
|
41
|
+
strike_price_lte: NotRequired[str]
|
|
42
|
+
r"""Strike price less than or equal to this value."""
|
|
43
|
+
strike_price_lt: NotRequired[str]
|
|
44
|
+
r"""Strike price strictly less than this value."""
|
|
45
|
+
expiration_date_gte: NotRequired[str]
|
|
46
|
+
r"""Expiration date greater than or equal to this value."""
|
|
47
|
+
expiration_date_gt: NotRequired[str]
|
|
48
|
+
r"""Expiration date strictly greater than this value."""
|
|
49
|
+
expiration_date_lte: NotRequired[str]
|
|
50
|
+
r"""Expiration date less than or equal to this value."""
|
|
51
|
+
expiration_date_lt: NotRequired[str]
|
|
52
|
+
r"""Expiration date strictly less than this value."""
|
|
53
|
+
order: NotRequired[GetOptionChainSnapshotOrder]
|
|
54
|
+
r"""Sort order for returned records. Use asc for oldest first or desc for newest first when supported. for results."""
|
|
55
|
+
limit: NotRequired[int]
|
|
56
|
+
r"""Maximum number of contracts per page (1–250)."""
|
|
57
|
+
sort: NotRequired[str]
|
|
58
|
+
r"""Sort field used for ordering. Massive documents this separately from `order`, so enter the provider-supported field name in the text box."""
|
|
59
|
+
next: NotRequired[str]
|
|
60
|
+
r"""Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page. You can also follow the absolute `nextUrl` from the previous response."""
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
class GetOptionChainSnapshotRequest(BaseModel):
|
|
64
|
+
underlying_asset: Annotated[
|
|
65
|
+
str,
|
|
66
|
+
pydantic.Field(alias="underlyingAsset"),
|
|
67
|
+
FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
|
|
68
|
+
]
|
|
69
|
+
r"""Underlying equity symbol (for example AAPL)."""
|
|
70
|
+
|
|
71
|
+
strike_price: Annotated[
|
|
72
|
+
Optional[str],
|
|
73
|
+
pydantic.Field(alias="strikePrice"),
|
|
74
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
75
|
+
] = None
|
|
76
|
+
r"""Filter by exact strike price (numeric string)."""
|
|
77
|
+
|
|
78
|
+
expiration_date: Annotated[
|
|
79
|
+
Optional[date],
|
|
80
|
+
pydantic.Field(alias="expirationDate"),
|
|
81
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
82
|
+
] = None
|
|
83
|
+
r"""Filter by expiration date (typically YYYY-MM-DD)."""
|
|
84
|
+
|
|
85
|
+
contract_type: Annotated[
|
|
86
|
+
Optional[str],
|
|
87
|
+
pydantic.Field(alias="contractType"),
|
|
88
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
89
|
+
] = None
|
|
90
|
+
r"""Filter by contract type (for example call or put)."""
|
|
91
|
+
|
|
92
|
+
strike_price_gte: Annotated[
|
|
93
|
+
Optional[str],
|
|
94
|
+
pydantic.Field(alias="strikePriceGte"),
|
|
95
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
96
|
+
] = None
|
|
97
|
+
r"""Strike price greater than or equal to this value."""
|
|
98
|
+
|
|
99
|
+
strike_price_gt: Annotated[
|
|
100
|
+
Optional[str],
|
|
101
|
+
pydantic.Field(alias="strikePriceGt"),
|
|
102
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
103
|
+
] = None
|
|
104
|
+
r"""Strike price strictly greater than this value."""
|
|
105
|
+
|
|
106
|
+
strike_price_lte: Annotated[
|
|
107
|
+
Optional[str],
|
|
108
|
+
pydantic.Field(alias="strikePriceLte"),
|
|
109
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
110
|
+
] = None
|
|
111
|
+
r"""Strike price less than or equal to this value."""
|
|
112
|
+
|
|
113
|
+
strike_price_lt: Annotated[
|
|
114
|
+
Optional[str],
|
|
115
|
+
pydantic.Field(alias="strikePriceLt"),
|
|
116
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
117
|
+
] = None
|
|
118
|
+
r"""Strike price strictly less than this value."""
|
|
119
|
+
|
|
120
|
+
expiration_date_gte: Annotated[
|
|
121
|
+
Optional[str],
|
|
122
|
+
pydantic.Field(alias="expirationDateGte"),
|
|
123
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
124
|
+
] = None
|
|
125
|
+
r"""Expiration date greater than or equal to this value."""
|
|
126
|
+
|
|
127
|
+
expiration_date_gt: Annotated[
|
|
128
|
+
Optional[str],
|
|
129
|
+
pydantic.Field(alias="expirationDateGt"),
|
|
130
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
131
|
+
] = None
|
|
132
|
+
r"""Expiration date strictly greater than this value."""
|
|
133
|
+
|
|
134
|
+
expiration_date_lte: Annotated[
|
|
135
|
+
Optional[str],
|
|
136
|
+
pydantic.Field(alias="expirationDateLte"),
|
|
137
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
138
|
+
] = None
|
|
139
|
+
r"""Expiration date less than or equal to this value."""
|
|
140
|
+
|
|
141
|
+
expiration_date_lt: Annotated[
|
|
142
|
+
Optional[str],
|
|
143
|
+
pydantic.Field(alias="expirationDateLt"),
|
|
144
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
145
|
+
] = None
|
|
146
|
+
r"""Expiration date strictly less than this value."""
|
|
147
|
+
|
|
148
|
+
order: Annotated[
|
|
149
|
+
Optional[GetOptionChainSnapshotOrder],
|
|
150
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
151
|
+
] = GetOptionChainSnapshotOrder.ASC
|
|
152
|
+
r"""Sort order for returned records. Use asc for oldest first or desc for newest first when supported. for results."""
|
|
153
|
+
|
|
154
|
+
limit: Annotated[
|
|
155
|
+
Optional[int],
|
|
156
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
157
|
+
] = None
|
|
158
|
+
r"""Maximum number of contracts per page (1–250)."""
|
|
159
|
+
|
|
160
|
+
sort: Annotated[
|
|
161
|
+
Optional[str],
|
|
162
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
163
|
+
] = None
|
|
164
|
+
r"""Sort field used for ordering. Massive documents this separately from `order`, so enter the provider-supported field name in the text box."""
|
|
165
|
+
|
|
166
|
+
next: Annotated[
|
|
167
|
+
Optional[str],
|
|
168
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
169
|
+
] = None
|
|
170
|
+
r"""Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page. You can also follow the absolute `nextUrl` from the previous response."""
|
|
171
|
+
|
|
172
|
+
@field_serializer("order")
|
|
173
|
+
def serialize_order(self, value):
|
|
174
|
+
if isinstance(value, str):
|
|
175
|
+
try:
|
|
176
|
+
return models.GetOptionChainSnapshotOrder(value)
|
|
177
|
+
except ValueError:
|
|
178
|
+
return value
|
|
179
|
+
return value
|
|
180
|
+
|
|
181
|
+
@model_serializer(mode="wrap")
|
|
182
|
+
def serialize_model(self, handler):
|
|
183
|
+
optional_fields = set(
|
|
184
|
+
[
|
|
185
|
+
"strikePrice",
|
|
186
|
+
"expirationDate",
|
|
187
|
+
"contractType",
|
|
188
|
+
"strikePriceGte",
|
|
189
|
+
"strikePriceGt",
|
|
190
|
+
"strikePriceLte",
|
|
191
|
+
"strikePriceLt",
|
|
192
|
+
"expirationDateGte",
|
|
193
|
+
"expirationDateGt",
|
|
194
|
+
"expirationDateLte",
|
|
195
|
+
"expirationDateLt",
|
|
196
|
+
"order",
|
|
197
|
+
"limit",
|
|
198
|
+
"sort",
|
|
199
|
+
"next",
|
|
200
|
+
]
|
|
201
|
+
)
|
|
202
|
+
serialized = handler(self)
|
|
203
|
+
m = {}
|
|
204
|
+
|
|
205
|
+
for n, f in type(self).model_fields.items():
|
|
206
|
+
k = f.alias or n
|
|
207
|
+
val = serialized.get(k, serialized.get(n))
|
|
208
|
+
|
|
209
|
+
if val != UNSET_SENTINEL:
|
|
210
|
+
if val is not None or k not in optional_fields:
|
|
211
|
+
m[k] = val
|
|
212
|
+
|
|
213
|
+
return m
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
class GetOptionChainSnapshotResponseTypedDict(TypedDict):
|
|
217
|
+
http_meta: HTTPMetadataTypedDict
|
|
218
|
+
option_chain_snapshot_response: NotRequired[OptionChainSnapshotResponseTypedDict]
|
|
219
|
+
r"""Option chain snapshot returned successfully."""
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
class GetOptionChainSnapshotResponse(BaseModel):
|
|
223
|
+
next: Callable[[], Optional[GetOptionChainSnapshotResponse]]
|
|
224
|
+
|
|
225
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
226
|
+
|
|
227
|
+
option_chain_snapshot_response: Optional[OptionChainSnapshotResponse] = None
|
|
228
|
+
r"""Option chain snapshot returned successfully."""
|
|
229
|
+
|
|
230
|
+
@model_serializer(mode="wrap")
|
|
231
|
+
def serialize_model(self, handler):
|
|
232
|
+
optional_fields = set(["OptionChainSnapshotResponse"])
|
|
233
|
+
serialized = handler(self)
|
|
234
|
+
m = {}
|
|
235
|
+
|
|
236
|
+
for n, f in type(self).model_fields.items():
|
|
237
|
+
k = f.alias or n
|
|
238
|
+
val = serialized.get(k, serialized.get(n))
|
|
239
|
+
|
|
240
|
+
if val != UNSET_SENTINEL:
|
|
241
|
+
if val is not None or k not in optional_fields:
|
|
242
|
+
m[k] = val
|
|
243
|
+
|
|
244
|
+
return m
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 4112a7f453dd
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .optioncontractsnapshotresponse import (
|
|
7
|
+
OptionContractSnapshotResponse,
|
|
8
|
+
OptionContractSnapshotResponseTypedDict,
|
|
9
|
+
)
|
|
10
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
11
|
+
from finance_dev.utils import FieldMetadata, PathParamMetadata
|
|
12
|
+
import pydantic
|
|
13
|
+
from pydantic import model_serializer
|
|
14
|
+
from typing import Optional
|
|
15
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class GetOptionContractSnapshotRequestTypedDict(TypedDict):
|
|
19
|
+
underlying_asset: str
|
|
20
|
+
r"""Underlying equity symbol (for example AAPL)."""
|
|
21
|
+
option_contract: str
|
|
22
|
+
r"""OCC-format options contract identifier (for example O:AAPL240119C00190000)."""
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class GetOptionContractSnapshotRequest(BaseModel):
|
|
26
|
+
underlying_asset: Annotated[
|
|
27
|
+
str,
|
|
28
|
+
pydantic.Field(alias="underlyingAsset"),
|
|
29
|
+
FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
|
|
30
|
+
]
|
|
31
|
+
r"""Underlying equity symbol (for example AAPL)."""
|
|
32
|
+
|
|
33
|
+
option_contract: Annotated[
|
|
34
|
+
str,
|
|
35
|
+
pydantic.Field(alias="optionContract"),
|
|
36
|
+
FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
|
|
37
|
+
]
|
|
38
|
+
r"""OCC-format options contract identifier (for example O:AAPL240119C00190000)."""
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class GetOptionContractSnapshotResponseTypedDict(TypedDict):
|
|
42
|
+
http_meta: HTTPMetadataTypedDict
|
|
43
|
+
option_contract_snapshot_response: NotRequired[
|
|
44
|
+
OptionContractSnapshotResponseTypedDict
|
|
45
|
+
]
|
|
46
|
+
r"""Option contract snapshot returned successfully."""
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
class GetOptionContractSnapshotResponse(BaseModel):
|
|
50
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
51
|
+
|
|
52
|
+
option_contract_snapshot_response: Optional[OptionContractSnapshotResponse] = None
|
|
53
|
+
r"""Option contract snapshot returned successfully."""
|
|
54
|
+
|
|
55
|
+
@model_serializer(mode="wrap")
|
|
56
|
+
def serialize_model(self, handler):
|
|
57
|
+
optional_fields = set(["OptionContractSnapshotResponse"])
|
|
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
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: c61f967cb70d
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .getoptiondetailsresponse import (
|
|
6
|
+
GetOptionDetailsResponse,
|
|
7
|
+
GetOptionDetailsResponseTypedDict,
|
|
8
|
+
)
|
|
9
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
10
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
11
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
12
|
+
import pydantic
|
|
13
|
+
from pydantic import model_serializer
|
|
14
|
+
from typing import Optional
|
|
15
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class GetOptionDetailsRequestTypedDict(TypedDict):
|
|
19
|
+
symbols: str
|
|
20
|
+
r"""One or more OSI option symbols, separated by commas (e.g. `GOOG270115C00285000`). Send at least one. The response order matches the request order."""
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class GetOptionDetailsRequest(BaseModel):
|
|
24
|
+
symbols: Annotated[
|
|
25
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
26
|
+
]
|
|
27
|
+
r"""One or more OSI option symbols, separated by commas (e.g. `GOOG270115C00285000`). Send at least one. The response order matches the request order."""
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class GetOptionDetailsResponseResponseTypedDict(TypedDict):
|
|
31
|
+
http_meta: HTTPMetadataTypedDict
|
|
32
|
+
get_option_details_response: NotRequired[GetOptionDetailsResponseTypedDict]
|
|
33
|
+
r"""`data` holds per-symbol option pricing objects matching `OptionDetailsDTO`. See schema for the `errors` array shape when a symbol cannot be returned."""
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class GetOptionDetailsResponseResponse(BaseModel):
|
|
37
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
38
|
+
|
|
39
|
+
get_option_details_response: Optional[GetOptionDetailsResponse] = None
|
|
40
|
+
r"""`data` holds per-symbol option pricing objects matching `OptionDetailsDTO`. See schema for the `errors` array shape when a symbol cannot be returned."""
|
|
41
|
+
|
|
42
|
+
@model_serializer(mode="wrap")
|
|
43
|
+
def serialize_model(self, handler):
|
|
44
|
+
optional_fields = set(["GetOptionDetailsResponse"])
|
|
45
|
+
serialized = handler(self)
|
|
46
|
+
m = {}
|
|
47
|
+
|
|
48
|
+
for n, f in type(self).model_fields.items():
|
|
49
|
+
k = f.alias or n
|
|
50
|
+
val = serialized.get(k, serialized.get(n))
|
|
51
|
+
|
|
52
|
+
if val != UNSET_SENTINEL:
|
|
53
|
+
if val is not None or k not in optional_fields:
|
|
54
|
+
m[k] = val
|
|
55
|
+
|
|
56
|
+
return m
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: cbb957c35f86
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .optiondetailsdto import OptionDetailsDTO, OptionDetailsDTOTypedDict
|
|
6
|
+
from .symbolerror import SymbolError, SymbolErrorTypedDict
|
|
7
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
8
|
+
from pydantic import model_serializer
|
|
9
|
+
from typing import List, Optional
|
|
10
|
+
from typing_extensions import NotRequired, TypedDict
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class GetOptionDetailsResponseTypedDict(TypedDict):
|
|
14
|
+
r"""Wrapper for GET /v1/marketdata/options/details: `data` for successful symbols, `errors` when applicable."""
|
|
15
|
+
|
|
16
|
+
data: NotRequired[List[OptionDetailsDTOTypedDict]]
|
|
17
|
+
r"""Option contracts that returned a pricing snapshot"""
|
|
18
|
+
errors: NotRequired[List[SymbolErrorTypedDict]]
|
|
19
|
+
r"""Per-symbol error entries when a requested symbol cannot be included in `data`"""
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class GetOptionDetailsResponse(BaseModel):
|
|
23
|
+
r"""Wrapper for GET /v1/marketdata/options/details: `data` for successful symbols, `errors` when applicable."""
|
|
24
|
+
|
|
25
|
+
data: Optional[List[OptionDetailsDTO]] = None
|
|
26
|
+
r"""Option contracts that returned a pricing snapshot"""
|
|
27
|
+
|
|
28
|
+
errors: Optional[List[SymbolError]] = None
|
|
29
|
+
r"""Per-symbol error entries when a requested symbol cannot be included in `data`"""
|
|
30
|
+
|
|
31
|
+
@model_serializer(mode="wrap")
|
|
32
|
+
def serialize_model(self, handler):
|
|
33
|
+
optional_fields = set(["data", "errors"])
|
|
34
|
+
serialized = handler(self)
|
|
35
|
+
m = {}
|
|
36
|
+
|
|
37
|
+
for n, f in type(self).model_fields.items():
|
|
38
|
+
k = f.alias or n
|
|
39
|
+
val = serialized.get(k, serialized.get(n))
|
|
40
|
+
|
|
41
|
+
if val != UNSET_SENTINEL:
|
|
42
|
+
if val is not None or k not in optional_fields:
|
|
43
|
+
m[k] = val
|
|
44
|
+
|
|
45
|
+
return m
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 5c2ffb6e8763
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .optionlasttraderesponse import (
|
|
7
|
+
OptionLastTradeResponse,
|
|
8
|
+
OptionLastTradeResponseTypedDict,
|
|
9
|
+
)
|
|
10
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
11
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
12
|
+
import pydantic
|
|
13
|
+
from pydantic import model_serializer
|
|
14
|
+
from typing import Optional
|
|
15
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class GetOptionLastTradeRequestTypedDict(TypedDict):
|
|
19
|
+
ticker: str
|
|
20
|
+
r"""Options contract ticker symbol. Enter the exact option symbol returned by option search or chain endpoints."""
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class GetOptionLastTradeRequest(BaseModel):
|
|
24
|
+
ticker: Annotated[
|
|
25
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
26
|
+
]
|
|
27
|
+
r"""Options contract ticker symbol. Enter the exact option symbol returned by option search or chain endpoints."""
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class GetOptionLastTradeResponseTypedDict(TypedDict):
|
|
31
|
+
http_meta: HTTPMetadataTypedDict
|
|
32
|
+
option_last_trade_response: NotRequired[OptionLastTradeResponseTypedDict]
|
|
33
|
+
r"""Successful response"""
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class GetOptionLastTradeResponse(BaseModel):
|
|
37
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
38
|
+
|
|
39
|
+
option_last_trade_response: Optional[OptionLastTradeResponse] = None
|
|
40
|
+
r"""Successful response"""
|
|
41
|
+
|
|
42
|
+
@model_serializer(mode="wrap")
|
|
43
|
+
def serialize_model(self, handler):
|
|
44
|
+
optional_fields = set(["OptionLastTradeResponse"])
|
|
45
|
+
serialized = handler(self)
|
|
46
|
+
m = {}
|
|
47
|
+
|
|
48
|
+
for n, f in type(self).model_fields.items():
|
|
49
|
+
k = f.alias or n
|
|
50
|
+
val = serialized.get(k, serialized.get(n))
|
|
51
|
+
|
|
52
|
+
if val != UNSET_SENTINEL:
|
|
53
|
+
if val is not None or k not in optional_fields:
|
|
54
|
+
m[k] = val
|
|
55
|
+
|
|
56
|
+
return m
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 687ca8fa045e
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .optionopencloseresponse import (
|
|
7
|
+
OptionOpenCloseResponse,
|
|
8
|
+
OptionOpenCloseResponseTypedDict,
|
|
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 Optional
|
|
16
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class GetOptionOpenCloseRequestTypedDict(TypedDict):
|
|
20
|
+
ticker: str
|
|
21
|
+
r"""OCC option ticker symbol (e.g., O:AAPL251219C00150000)"""
|
|
22
|
+
date_: date
|
|
23
|
+
r"""Date in YYYY-MM-DD format. Enter the specific calendar date you want to query."""
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class GetOptionOpenCloseRequest(BaseModel):
|
|
27
|
+
ticker: Annotated[
|
|
28
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
29
|
+
]
|
|
30
|
+
r"""OCC option ticker symbol (e.g., O:AAPL251219C00150000)"""
|
|
31
|
+
|
|
32
|
+
date_: Annotated[
|
|
33
|
+
date,
|
|
34
|
+
pydantic.Field(alias="date"),
|
|
35
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
36
|
+
]
|
|
37
|
+
r"""Date in YYYY-MM-DD format. Enter the specific calendar date you want to query."""
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class GetOptionOpenCloseResponseTypedDict(TypedDict):
|
|
41
|
+
http_meta: HTTPMetadataTypedDict
|
|
42
|
+
option_open_close_response: NotRequired[OptionOpenCloseResponseTypedDict]
|
|
43
|
+
r"""Successful response"""
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
class GetOptionOpenCloseResponse(BaseModel):
|
|
47
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
48
|
+
|
|
49
|
+
option_open_close_response: Optional[OptionOpenCloseResponse] = None
|
|
50
|
+
r"""Successful response"""
|
|
51
|
+
|
|
52
|
+
@model_serializer(mode="wrap")
|
|
53
|
+
def serialize_model(self, handler):
|
|
54
|
+
optional_fields = set(["OptionOpenCloseResponse"])
|
|
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
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: ffd8ea15e195
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .optionpreviousdayresponse import (
|
|
7
|
+
OptionPreviousDayResponse,
|
|
8
|
+
OptionPreviousDayResponseTypedDict,
|
|
9
|
+
)
|
|
10
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
11
|
+
from finance_dev.utils import FieldMetadata, QueryParamMetadata
|
|
12
|
+
import pydantic
|
|
13
|
+
from pydantic import model_serializer
|
|
14
|
+
from typing import Optional
|
|
15
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class GetOptionPreviousDayRequestTypedDict(TypedDict):
|
|
19
|
+
ticker: str
|
|
20
|
+
r"""Option contract identifier in OCC/OSI format. The 21-character form is `ROOT + YYMMDD + C/P + strike-in-cents` (e.g. `AAPL251219C00150000` = AAPL Dec-19-2025 $150 Call). The optional `O:` prefix is accepted and stripped (so `O:AAPL251219C00150000` works too)."""
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class GetOptionPreviousDayRequest(BaseModel):
|
|
24
|
+
ticker: Annotated[
|
|
25
|
+
str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
|
|
26
|
+
]
|
|
27
|
+
r"""Option contract identifier in OCC/OSI format. The 21-character form is `ROOT + YYMMDD + C/P + strike-in-cents` (e.g. `AAPL251219C00150000` = AAPL Dec-19-2025 $150 Call). The optional `O:` prefix is accepted and stripped (so `O:AAPL251219C00150000` works too)."""
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class GetOptionPreviousDayResponseTypedDict(TypedDict):
|
|
31
|
+
http_meta: HTTPMetadataTypedDict
|
|
32
|
+
option_previous_day_response: NotRequired[OptionPreviousDayResponseTypedDict]
|
|
33
|
+
r"""Previous-day bar for the requested option contract."""
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class GetOptionPreviousDayResponse(BaseModel):
|
|
37
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
38
|
+
|
|
39
|
+
option_previous_day_response: Optional[OptionPreviousDayResponse] = None
|
|
40
|
+
r"""Previous-day bar for the requested option contract."""
|
|
41
|
+
|
|
42
|
+
@model_serializer(mode="wrap")
|
|
43
|
+
def serialize_model(self, handler):
|
|
44
|
+
optional_fields = set(["OptionPreviousDayResponse"])
|
|
45
|
+
serialized = handler(self)
|
|
46
|
+
m = {}
|
|
47
|
+
|
|
48
|
+
for n, f in type(self).model_fields.items():
|
|
49
|
+
k = f.alias or n
|
|
50
|
+
val = serialized.get(k, serialized.get(n))
|
|
51
|
+
|
|
52
|
+
if val != UNSET_SENTINEL:
|
|
53
|
+
if val is not None or k not in optional_fields:
|
|
54
|
+
m[k] = val
|
|
55
|
+
|
|
56
|
+
return m
|