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,138 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 5792c27d8c12
|
|
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 OptionQuotesResponseResultTypedDict(TypedDict):
|
|
13
|
+
ask_exchange: NotRequired[int]
|
|
14
|
+
r"""Ask exchange ID"""
|
|
15
|
+
ask_price: NotRequired[float]
|
|
16
|
+
r"""Ask price"""
|
|
17
|
+
ask_size: NotRequired[float]
|
|
18
|
+
r"""Ask size"""
|
|
19
|
+
bid_exchange: NotRequired[int]
|
|
20
|
+
r"""Bid exchange ID"""
|
|
21
|
+
bid_price: NotRequired[float]
|
|
22
|
+
r"""Bid price"""
|
|
23
|
+
bid_size: NotRequired[float]
|
|
24
|
+
r"""Bid size"""
|
|
25
|
+
sequence_number: NotRequired[int]
|
|
26
|
+
r"""Sequence number"""
|
|
27
|
+
sip_timestamp: NotRequired[int]
|
|
28
|
+
r"""SIP timestamp (nanoseconds)"""
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class OptionQuotesResponseResult(BaseModel):
|
|
32
|
+
ask_exchange: Annotated[Optional[int], pydantic.Field(alias="askExchange")] = None
|
|
33
|
+
r"""Ask exchange ID"""
|
|
34
|
+
|
|
35
|
+
ask_price: Annotated[Optional[float], pydantic.Field(alias="askPrice")] = None
|
|
36
|
+
r"""Ask price"""
|
|
37
|
+
|
|
38
|
+
ask_size: Annotated[Optional[float], pydantic.Field(alias="askSize")] = None
|
|
39
|
+
r"""Ask size"""
|
|
40
|
+
|
|
41
|
+
bid_exchange: Annotated[Optional[int], pydantic.Field(alias="bidExchange")] = None
|
|
42
|
+
r"""Bid exchange ID"""
|
|
43
|
+
|
|
44
|
+
bid_price: Annotated[Optional[float], pydantic.Field(alias="bidPrice")] = None
|
|
45
|
+
r"""Bid price"""
|
|
46
|
+
|
|
47
|
+
bid_size: Annotated[Optional[float], pydantic.Field(alias="bidSize")] = None
|
|
48
|
+
r"""Bid size"""
|
|
49
|
+
|
|
50
|
+
sequence_number: Annotated[
|
|
51
|
+
Optional[int], pydantic.Field(alias="sequenceNumber")
|
|
52
|
+
] = None
|
|
53
|
+
r"""Sequence number"""
|
|
54
|
+
|
|
55
|
+
sip_timestamp: Annotated[Optional[int], pydantic.Field(alias="sipTimestamp")] = None
|
|
56
|
+
r"""SIP timestamp (nanoseconds)"""
|
|
57
|
+
|
|
58
|
+
@model_serializer(mode="wrap")
|
|
59
|
+
def serialize_model(self, handler):
|
|
60
|
+
optional_fields = set(
|
|
61
|
+
[
|
|
62
|
+
"askExchange",
|
|
63
|
+
"askPrice",
|
|
64
|
+
"askSize",
|
|
65
|
+
"bidExchange",
|
|
66
|
+
"bidPrice",
|
|
67
|
+
"bidSize",
|
|
68
|
+
"sequenceNumber",
|
|
69
|
+
"sipTimestamp",
|
|
70
|
+
]
|
|
71
|
+
)
|
|
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
|
+
class OptionQuotesResponseTypedDict(TypedDict):
|
|
87
|
+
r"""Paginated list of historical quotes for an options contract."""
|
|
88
|
+
|
|
89
|
+
next_url: NotRequired[str]
|
|
90
|
+
r"""URL for next page of results"""
|
|
91
|
+
request_id: NotRequired[str]
|
|
92
|
+
r"""Unique request ID"""
|
|
93
|
+
results: NotRequired[List[OptionQuotesResponseResultTypedDict]]
|
|
94
|
+
r"""Array of options quote objects"""
|
|
95
|
+
status: NotRequired[str]
|
|
96
|
+
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."""
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
class OptionQuotesResponse(BaseModel):
|
|
100
|
+
r"""Paginated list of historical quotes for an options contract."""
|
|
101
|
+
|
|
102
|
+
next_url: Annotated[Optional[str], pydantic.Field(alias="nextUrl")] = None
|
|
103
|
+
r"""URL for next page of results"""
|
|
104
|
+
|
|
105
|
+
request_id: Annotated[Optional[str], pydantic.Field(alias="requestId")] = None
|
|
106
|
+
r"""Unique request ID"""
|
|
107
|
+
|
|
108
|
+
results: Optional[List[OptionQuotesResponseResult]] = None
|
|
109
|
+
r"""Array of options quote objects"""
|
|
110
|
+
|
|
111
|
+
status: Optional[str] = None
|
|
112
|
+
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."""
|
|
113
|
+
|
|
114
|
+
@model_serializer(mode="wrap")
|
|
115
|
+
def serialize_model(self, handler):
|
|
116
|
+
optional_fields = set(["nextUrl", "requestId", "results", "status"])
|
|
117
|
+
serialized = handler(self)
|
|
118
|
+
m = {}
|
|
119
|
+
|
|
120
|
+
for n, f in type(self).model_fields.items():
|
|
121
|
+
k = f.alias or n
|
|
122
|
+
val = serialized.get(k, serialized.get(n))
|
|
123
|
+
|
|
124
|
+
if val != UNSET_SENTINEL:
|
|
125
|
+
if val is not None or k not in optional_fields:
|
|
126
|
+
m[k] = val
|
|
127
|
+
|
|
128
|
+
return m
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
try:
|
|
132
|
+
OptionQuotesResponseResult.model_rebuild()
|
|
133
|
+
except NameError:
|
|
134
|
+
pass
|
|
135
|
+
try:
|
|
136
|
+
OptionQuotesResponse.model_rebuild()
|
|
137
|
+
except NameError:
|
|
138
|
+
pass
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 3d4104e6512f
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from enum import Enum
|
|
6
|
+
from finance_dev import models, utils
|
|
7
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
8
|
+
import pydantic
|
|
9
|
+
from pydantic import field_serializer, model_serializer
|
|
10
|
+
from typing import List, Optional
|
|
11
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class OptionsActivityResponsePutCall(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
15
|
+
r"""Option type (PUT or CALL)"""
|
|
16
|
+
|
|
17
|
+
PUT = "PUT"
|
|
18
|
+
CALL = "CALL"
|
|
19
|
+
P = "P"
|
|
20
|
+
C = "C"
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class ActivityTypedDict(TypedDict):
|
|
24
|
+
aggressor_ind: NotRequired[str]
|
|
25
|
+
r"""Aggressor indicator showing buyer/seller aggressiveness"""
|
|
26
|
+
ask: NotRequired[str]
|
|
27
|
+
r"""Current ask price"""
|
|
28
|
+
bid: NotRequired[str]
|
|
29
|
+
r"""Current bid price"""
|
|
30
|
+
cost_basis: NotRequired[str]
|
|
31
|
+
r"""Total cost of the options position"""
|
|
32
|
+
date_: NotRequired[str]
|
|
33
|
+
r"""Trade date in YYYY-MM-DD format"""
|
|
34
|
+
date_expiration: NotRequired[str]
|
|
35
|
+
r"""Option expiration date in YYYY-MM-DD format"""
|
|
36
|
+
description: NotRequired[str]
|
|
37
|
+
r"""Brief description of the options activity"""
|
|
38
|
+
description_extended: NotRequired[str]
|
|
39
|
+
r"""Detailed description with full trade context"""
|
|
40
|
+
exchange: NotRequired[str]
|
|
41
|
+
r"""Exchange code where the data originates. Format depends on the upstream data source and may use MIC, ISO 10383, or a vendor-specific code."""
|
|
42
|
+
execution_estimate: NotRequired[str]
|
|
43
|
+
r"""Estimated execution location (AT_BID, AT_ASK, AT_MID)"""
|
|
44
|
+
id: NotRequired[str]
|
|
45
|
+
r"""Unique identifier for the options activity record"""
|
|
46
|
+
midpoint: NotRequired[str]
|
|
47
|
+
r"""Midpoint between bid and ask prices"""
|
|
48
|
+
open_interest: NotRequired[str]
|
|
49
|
+
r"""Total open interest for this option contract"""
|
|
50
|
+
option_activity_type: NotRequired[str]
|
|
51
|
+
r"""Type of activity (SWEEP, BLOCK, LARGE, UNUSUAL)"""
|
|
52
|
+
option_symbol: NotRequired[str]
|
|
53
|
+
r"""OCC option symbol identifier"""
|
|
54
|
+
price: NotRequired[str]
|
|
55
|
+
r"""Execution price per contract"""
|
|
56
|
+
put_call: NotRequired[OptionsActivityResponsePutCall]
|
|
57
|
+
r"""Option type (PUT or CALL)"""
|
|
58
|
+
sentiment: NotRequired[str]
|
|
59
|
+
r"""Market sentiment indicator (BULLISH, BEARISH, NEUTRAL)"""
|
|
60
|
+
size: NotRequired[str]
|
|
61
|
+
r"""Number of contracts traded"""
|
|
62
|
+
strike_price: NotRequired[str]
|
|
63
|
+
r"""Strike price of the option contract"""
|
|
64
|
+
ticker: NotRequired[str]
|
|
65
|
+
r"""Underlying stock ticker symbol"""
|
|
66
|
+
time: NotRequired[str]
|
|
67
|
+
r"""Trade execution time in HH:MM:SS format"""
|
|
68
|
+
trade_count: NotRequired[str]
|
|
69
|
+
r"""Number of individual trades in this activity"""
|
|
70
|
+
underlying_price: NotRequired[str]
|
|
71
|
+
r"""Current price of the underlying security"""
|
|
72
|
+
underlying_type: NotRequired[str]
|
|
73
|
+
r"""Type of underlying security (STOCK, ETF, INDEX)"""
|
|
74
|
+
updated: NotRequired[int]
|
|
75
|
+
r"""Unix timestamp when the record was last updated"""
|
|
76
|
+
volume: NotRequired[str]
|
|
77
|
+
r"""Total volume traded for the day"""
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
class Activity(BaseModel):
|
|
81
|
+
aggressor_ind: Annotated[Optional[str], pydantic.Field(alias="aggressorInd")] = None
|
|
82
|
+
r"""Aggressor indicator showing buyer/seller aggressiveness"""
|
|
83
|
+
|
|
84
|
+
ask: Optional[str] = None
|
|
85
|
+
r"""Current ask price"""
|
|
86
|
+
|
|
87
|
+
bid: Optional[str] = None
|
|
88
|
+
r"""Current bid price"""
|
|
89
|
+
|
|
90
|
+
cost_basis: Annotated[Optional[str], pydantic.Field(alias="costBasis")] = None
|
|
91
|
+
r"""Total cost of the options position"""
|
|
92
|
+
|
|
93
|
+
date_: Annotated[Optional[str], pydantic.Field(alias="date")] = None
|
|
94
|
+
r"""Trade date in YYYY-MM-DD format"""
|
|
95
|
+
|
|
96
|
+
date_expiration: Annotated[
|
|
97
|
+
Optional[str], pydantic.Field(alias="dateExpiration")
|
|
98
|
+
] = None
|
|
99
|
+
r"""Option expiration date in YYYY-MM-DD format"""
|
|
100
|
+
|
|
101
|
+
description: Optional[str] = None
|
|
102
|
+
r"""Brief description of the options activity"""
|
|
103
|
+
|
|
104
|
+
description_extended: Annotated[
|
|
105
|
+
Optional[str], pydantic.Field(alias="descriptionExtended")
|
|
106
|
+
] = None
|
|
107
|
+
r"""Detailed description with full trade context"""
|
|
108
|
+
|
|
109
|
+
exchange: Optional[str] = None
|
|
110
|
+
r"""Exchange code where the data originates. Format depends on the upstream data source and may use MIC, ISO 10383, or a vendor-specific code."""
|
|
111
|
+
|
|
112
|
+
execution_estimate: Annotated[
|
|
113
|
+
Optional[str], pydantic.Field(alias="executionEstimate")
|
|
114
|
+
] = None
|
|
115
|
+
r"""Estimated execution location (AT_BID, AT_ASK, AT_MID)"""
|
|
116
|
+
|
|
117
|
+
id: Optional[str] = None
|
|
118
|
+
r"""Unique identifier for the options activity record"""
|
|
119
|
+
|
|
120
|
+
midpoint: Optional[str] = None
|
|
121
|
+
r"""Midpoint between bid and ask prices"""
|
|
122
|
+
|
|
123
|
+
open_interest: Annotated[Optional[str], pydantic.Field(alias="openInterest")] = None
|
|
124
|
+
r"""Total open interest for this option contract"""
|
|
125
|
+
|
|
126
|
+
option_activity_type: Annotated[
|
|
127
|
+
Optional[str], pydantic.Field(alias="optionActivityType")
|
|
128
|
+
] = None
|
|
129
|
+
r"""Type of activity (SWEEP, BLOCK, LARGE, UNUSUAL)"""
|
|
130
|
+
|
|
131
|
+
option_symbol: Annotated[Optional[str], pydantic.Field(alias="optionSymbol")] = None
|
|
132
|
+
r"""OCC option symbol identifier"""
|
|
133
|
+
|
|
134
|
+
price: Optional[str] = None
|
|
135
|
+
r"""Execution price per contract"""
|
|
136
|
+
|
|
137
|
+
put_call: Annotated[
|
|
138
|
+
Optional[OptionsActivityResponsePutCall], pydantic.Field(alias="putCall")
|
|
139
|
+
] = None
|
|
140
|
+
r"""Option type (PUT or CALL)"""
|
|
141
|
+
|
|
142
|
+
sentiment: Optional[str] = None
|
|
143
|
+
r"""Market sentiment indicator (BULLISH, BEARISH, NEUTRAL)"""
|
|
144
|
+
|
|
145
|
+
size: Optional[str] = None
|
|
146
|
+
r"""Number of contracts traded"""
|
|
147
|
+
|
|
148
|
+
strike_price: Annotated[Optional[str], pydantic.Field(alias="strikePrice")] = None
|
|
149
|
+
r"""Strike price of the option contract"""
|
|
150
|
+
|
|
151
|
+
ticker: Optional[str] = None
|
|
152
|
+
r"""Underlying stock ticker symbol"""
|
|
153
|
+
|
|
154
|
+
time: Optional[str] = None
|
|
155
|
+
r"""Trade execution time in HH:MM:SS format"""
|
|
156
|
+
|
|
157
|
+
trade_count: Annotated[Optional[str], pydantic.Field(alias="tradeCount")] = None
|
|
158
|
+
r"""Number of individual trades in this activity"""
|
|
159
|
+
|
|
160
|
+
underlying_price: Annotated[
|
|
161
|
+
Optional[str], pydantic.Field(alias="underlyingPrice")
|
|
162
|
+
] = None
|
|
163
|
+
r"""Current price of the underlying security"""
|
|
164
|
+
|
|
165
|
+
underlying_type: Annotated[
|
|
166
|
+
Optional[str], pydantic.Field(alias="underlyingType")
|
|
167
|
+
] = None
|
|
168
|
+
r"""Type of underlying security (STOCK, ETF, INDEX)"""
|
|
169
|
+
|
|
170
|
+
updated: Optional[int] = None
|
|
171
|
+
r"""Unix timestamp when the record was last updated"""
|
|
172
|
+
|
|
173
|
+
volume: Optional[str] = None
|
|
174
|
+
r"""Total volume traded for the day"""
|
|
175
|
+
|
|
176
|
+
@field_serializer("put_call")
|
|
177
|
+
def serialize_put_call(self, value):
|
|
178
|
+
if isinstance(value, str):
|
|
179
|
+
try:
|
|
180
|
+
return models.OptionsActivityResponsePutCall(value)
|
|
181
|
+
except ValueError:
|
|
182
|
+
return value
|
|
183
|
+
return value
|
|
184
|
+
|
|
185
|
+
@model_serializer(mode="wrap")
|
|
186
|
+
def serialize_model(self, handler):
|
|
187
|
+
optional_fields = set(
|
|
188
|
+
[
|
|
189
|
+
"aggressorInd",
|
|
190
|
+
"ask",
|
|
191
|
+
"bid",
|
|
192
|
+
"costBasis",
|
|
193
|
+
"date",
|
|
194
|
+
"dateExpiration",
|
|
195
|
+
"description",
|
|
196
|
+
"descriptionExtended",
|
|
197
|
+
"exchange",
|
|
198
|
+
"executionEstimate",
|
|
199
|
+
"id",
|
|
200
|
+
"midpoint",
|
|
201
|
+
"openInterest",
|
|
202
|
+
"optionActivityType",
|
|
203
|
+
"optionSymbol",
|
|
204
|
+
"price",
|
|
205
|
+
"putCall",
|
|
206
|
+
"sentiment",
|
|
207
|
+
"size",
|
|
208
|
+
"strikePrice",
|
|
209
|
+
"ticker",
|
|
210
|
+
"time",
|
|
211
|
+
"tradeCount",
|
|
212
|
+
"underlyingPrice",
|
|
213
|
+
"underlyingType",
|
|
214
|
+
"updated",
|
|
215
|
+
"volume",
|
|
216
|
+
]
|
|
217
|
+
)
|
|
218
|
+
serialized = handler(self)
|
|
219
|
+
m = {}
|
|
220
|
+
|
|
221
|
+
for n, f in type(self).model_fields.items():
|
|
222
|
+
k = f.alias or n
|
|
223
|
+
val = serialized.get(k, serialized.get(n))
|
|
224
|
+
|
|
225
|
+
if val != UNSET_SENTINEL:
|
|
226
|
+
if val is not None or k not in optional_fields:
|
|
227
|
+
m[k] = val
|
|
228
|
+
|
|
229
|
+
return m
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
class OptionsActivityResponseTypedDict(TypedDict):
|
|
233
|
+
r"""Response containing unusual options activity records."""
|
|
234
|
+
|
|
235
|
+
activities: NotRequired[List[ActivityTypedDict]]
|
|
236
|
+
r"""Array of options activity records"""
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
class OptionsActivityResponse(BaseModel):
|
|
240
|
+
r"""Response containing unusual options activity records."""
|
|
241
|
+
|
|
242
|
+
activities: Optional[List[Activity]] = None
|
|
243
|
+
r"""Array of options activity records"""
|
|
244
|
+
|
|
245
|
+
@model_serializer(mode="wrap")
|
|
246
|
+
def serialize_model(self, handler):
|
|
247
|
+
optional_fields = set(["activities"])
|
|
248
|
+
serialized = handler(self)
|
|
249
|
+
m = {}
|
|
250
|
+
|
|
251
|
+
for n, f in type(self).model_fields.items():
|
|
252
|
+
k = f.alias or n
|
|
253
|
+
val = serialized.get(k, serialized.get(n))
|
|
254
|
+
|
|
255
|
+
if val != UNSET_SENTINEL:
|
|
256
|
+
if val is not None or k not in optional_fields:
|
|
257
|
+
m[k] = val
|
|
258
|
+
|
|
259
|
+
return m
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
try:
|
|
263
|
+
Activity.model_rebuild()
|
|
264
|
+
except NameError:
|
|
265
|
+
pass
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: e027c7c6888e
|
|
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 OptionSnapshotContractDetailsTypedDict(TypedDict):
|
|
13
|
+
r"""Static contract metadata (`OptionSnapshotDetailsDTO`)."""
|
|
14
|
+
|
|
15
|
+
contract_type: NotRequired[str]
|
|
16
|
+
r"""Contract type (for example call or put)."""
|
|
17
|
+
exercise_style: NotRequired[str]
|
|
18
|
+
r"""Exercise style of the contract (for example american or european)"""
|
|
19
|
+
expiration_date: NotRequired[str]
|
|
20
|
+
r"""Expiration date (ISO date string)."""
|
|
21
|
+
shares_per_contract: NotRequired[float]
|
|
22
|
+
r"""Number of shares of the underlying covered by one contract"""
|
|
23
|
+
strike_price: NotRequired[float]
|
|
24
|
+
r"""Strike price of the contract"""
|
|
25
|
+
ticker: NotRequired[str]
|
|
26
|
+
r"""OCC-format options ticker."""
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class OptionSnapshotContractDetails(BaseModel):
|
|
30
|
+
r"""Static contract metadata (`OptionSnapshotDetailsDTO`)."""
|
|
31
|
+
|
|
32
|
+
contract_type: Annotated[Optional[str], pydantic.Field(alias="contractType")] = None
|
|
33
|
+
r"""Contract type (for example call or put)."""
|
|
34
|
+
|
|
35
|
+
exercise_style: Annotated[Optional[str], pydantic.Field(alias="exerciseStyle")] = (
|
|
36
|
+
None
|
|
37
|
+
)
|
|
38
|
+
r"""Exercise style of the contract (for example american or european)"""
|
|
39
|
+
|
|
40
|
+
expiration_date: Annotated[
|
|
41
|
+
Optional[str], pydantic.Field(alias="expirationDate")
|
|
42
|
+
] = None
|
|
43
|
+
r"""Expiration date (ISO date string)."""
|
|
44
|
+
|
|
45
|
+
shares_per_contract: Annotated[
|
|
46
|
+
Optional[float], pydantic.Field(alias="sharesPerContract")
|
|
47
|
+
] = None
|
|
48
|
+
r"""Number of shares of the underlying covered by one contract"""
|
|
49
|
+
|
|
50
|
+
strike_price: Annotated[Optional[float], pydantic.Field(alias="strikePrice")] = None
|
|
51
|
+
r"""Strike price of the contract"""
|
|
52
|
+
|
|
53
|
+
ticker: Optional[str] = None
|
|
54
|
+
r"""OCC-format options ticker."""
|
|
55
|
+
|
|
56
|
+
@model_serializer(mode="wrap")
|
|
57
|
+
def serialize_model(self, handler):
|
|
58
|
+
optional_fields = set(
|
|
59
|
+
[
|
|
60
|
+
"contractType",
|
|
61
|
+
"exerciseStyle",
|
|
62
|
+
"expirationDate",
|
|
63
|
+
"sharesPerContract",
|
|
64
|
+
"strikePrice",
|
|
65
|
+
"ticker",
|
|
66
|
+
]
|
|
67
|
+
)
|
|
68
|
+
serialized = handler(self)
|
|
69
|
+
m = {}
|
|
70
|
+
|
|
71
|
+
for n, f in type(self).model_fields.items():
|
|
72
|
+
k = f.alias or n
|
|
73
|
+
val = serialized.get(k, serialized.get(n))
|
|
74
|
+
|
|
75
|
+
if val != UNSET_SENTINEL:
|
|
76
|
+
if val is not None or k not in optional_fields:
|
|
77
|
+
m[k] = val
|
|
78
|
+
|
|
79
|
+
return m
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
try:
|
|
83
|
+
OptionSnapshotContractDetails.model_rebuild()
|
|
84
|
+
except NameError:
|
|
85
|
+
pass
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 54ddba7ce2b0
|
|
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 OptionSnapshotDayBarTypedDict(TypedDict):
|
|
13
|
+
r"""Most recent daily OHLCV bar for the contract (`OptionSnapshotDayBarDTO`)."""
|
|
14
|
+
|
|
15
|
+
change: NotRequired[float]
|
|
16
|
+
r"""Price change for the day"""
|
|
17
|
+
change_percent: NotRequired[float]
|
|
18
|
+
r"""Percentage price change for the day"""
|
|
19
|
+
close: NotRequired[float]
|
|
20
|
+
r"""Closing price for the day"""
|
|
21
|
+
high: NotRequired[float]
|
|
22
|
+
r"""Highest price for the day"""
|
|
23
|
+
last_updated: NotRequired[int]
|
|
24
|
+
r"""Timestamp of the last update to the day bar, as supplied by the market data provider"""
|
|
25
|
+
low: NotRequired[float]
|
|
26
|
+
r"""Lowest price for the day"""
|
|
27
|
+
open: NotRequired[float]
|
|
28
|
+
r"""Opening price for the day"""
|
|
29
|
+
previous_close: NotRequired[float]
|
|
30
|
+
r"""Previous day's closing price"""
|
|
31
|
+
volume: NotRequired[float]
|
|
32
|
+
r"""Trading volume for the day"""
|
|
33
|
+
vwap: NotRequired[float]
|
|
34
|
+
r"""Volume-weighted average price for the day"""
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
class OptionSnapshotDayBar(BaseModel):
|
|
38
|
+
r"""Most recent daily OHLCV bar for the contract (`OptionSnapshotDayBarDTO`)."""
|
|
39
|
+
|
|
40
|
+
change: Optional[float] = None
|
|
41
|
+
r"""Price change for the day"""
|
|
42
|
+
|
|
43
|
+
change_percent: Annotated[
|
|
44
|
+
Optional[float], pydantic.Field(alias="changePercent")
|
|
45
|
+
] = None
|
|
46
|
+
r"""Percentage price change for the day"""
|
|
47
|
+
|
|
48
|
+
close: Optional[float] = None
|
|
49
|
+
r"""Closing price for the day"""
|
|
50
|
+
|
|
51
|
+
high: Optional[float] = None
|
|
52
|
+
r"""Highest price for the day"""
|
|
53
|
+
|
|
54
|
+
last_updated: Annotated[Optional[int], pydantic.Field(alias="lastUpdated")] = None
|
|
55
|
+
r"""Timestamp of the last update to the day bar, as supplied by the market data provider"""
|
|
56
|
+
|
|
57
|
+
low: Optional[float] = None
|
|
58
|
+
r"""Lowest price for the day"""
|
|
59
|
+
|
|
60
|
+
open: Optional[float] = None
|
|
61
|
+
r"""Opening price for the day"""
|
|
62
|
+
|
|
63
|
+
previous_close: Annotated[
|
|
64
|
+
Optional[float], pydantic.Field(alias="previousClose")
|
|
65
|
+
] = None
|
|
66
|
+
r"""Previous day's closing price"""
|
|
67
|
+
|
|
68
|
+
volume: Optional[float] = None
|
|
69
|
+
r"""Trading volume for the day"""
|
|
70
|
+
|
|
71
|
+
vwap: Optional[float] = None
|
|
72
|
+
r"""Volume-weighted average price for the day"""
|
|
73
|
+
|
|
74
|
+
@model_serializer(mode="wrap")
|
|
75
|
+
def serialize_model(self, handler):
|
|
76
|
+
optional_fields = set(
|
|
77
|
+
[
|
|
78
|
+
"change",
|
|
79
|
+
"changePercent",
|
|
80
|
+
"close",
|
|
81
|
+
"high",
|
|
82
|
+
"lastUpdated",
|
|
83
|
+
"low",
|
|
84
|
+
"open",
|
|
85
|
+
"previousClose",
|
|
86
|
+
"volume",
|
|
87
|
+
"vwap",
|
|
88
|
+
]
|
|
89
|
+
)
|
|
90
|
+
serialized = handler(self)
|
|
91
|
+
m = {}
|
|
92
|
+
|
|
93
|
+
for n, f in type(self).model_fields.items():
|
|
94
|
+
k = f.alias or n
|
|
95
|
+
val = serialized.get(k, serialized.get(n))
|
|
96
|
+
|
|
97
|
+
if val != UNSET_SENTINEL:
|
|
98
|
+
if val is not None or k not in optional_fields:
|
|
99
|
+
m[k] = val
|
|
100
|
+
|
|
101
|
+
return m
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
try:
|
|
105
|
+
OptionSnapshotDayBar.model_rebuild()
|
|
106
|
+
except NameError:
|
|
107
|
+
pass
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: f57d4a6afeca
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from finance_dev.types import (
|
|
6
|
+
BaseModel,
|
|
7
|
+
Nullable,
|
|
8
|
+
OptionalNullable,
|
|
9
|
+
UNSET,
|
|
10
|
+
UNSET_SENTINEL,
|
|
11
|
+
)
|
|
12
|
+
from pydantic import model_serializer
|
|
13
|
+
from typing_extensions import NotRequired, TypedDict
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class OptionSnapshotGreeksTypedDict(TypedDict):
|
|
17
|
+
r"""Greeks when available (`OptionSnapshotGreeksDTO`)."""
|
|
18
|
+
|
|
19
|
+
delta: NotRequired[Nullable[float]]
|
|
20
|
+
r"""Delta of the contract"""
|
|
21
|
+
gamma: NotRequired[Nullable[float]]
|
|
22
|
+
r"""Gamma of the contract"""
|
|
23
|
+
theta: NotRequired[Nullable[float]]
|
|
24
|
+
r"""Theta of the contract"""
|
|
25
|
+
vega: NotRequired[Nullable[float]]
|
|
26
|
+
r"""Vega of the contract"""
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class OptionSnapshotGreeks(BaseModel):
|
|
30
|
+
r"""Greeks when available (`OptionSnapshotGreeksDTO`)."""
|
|
31
|
+
|
|
32
|
+
delta: OptionalNullable[float] = UNSET
|
|
33
|
+
r"""Delta of the contract"""
|
|
34
|
+
|
|
35
|
+
gamma: OptionalNullable[float] = UNSET
|
|
36
|
+
r"""Gamma of the contract"""
|
|
37
|
+
|
|
38
|
+
theta: OptionalNullable[float] = UNSET
|
|
39
|
+
r"""Theta of the contract"""
|
|
40
|
+
|
|
41
|
+
vega: OptionalNullable[float] = UNSET
|
|
42
|
+
r"""Vega of the contract"""
|
|
43
|
+
|
|
44
|
+
@model_serializer(mode="wrap")
|
|
45
|
+
def serialize_model(self, handler):
|
|
46
|
+
optional_fields = set(["delta", "gamma", "theta", "vega"])
|
|
47
|
+
nullable_fields = set(["delta", "gamma", "theta", "vega"])
|
|
48
|
+
serialized = handler(self)
|
|
49
|
+
m = {}
|
|
50
|
+
|
|
51
|
+
for n, f in type(self).model_fields.items():
|
|
52
|
+
k = f.alias or n
|
|
53
|
+
val = serialized.get(k, serialized.get(n))
|
|
54
|
+
is_nullable_and_explicitly_set = (
|
|
55
|
+
k in nullable_fields
|
|
56
|
+
and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
if val != UNSET_SENTINEL:
|
|
60
|
+
if (
|
|
61
|
+
val is not None
|
|
62
|
+
or k not in optional_fields
|
|
63
|
+
or is_nullable_and_explicitly_set
|
|
64
|
+
):
|
|
65
|
+
m[k] = val
|
|
66
|
+
|
|
67
|
+
return m
|