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,164 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 2b6bdc510e4a
|
|
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 StockTradesResponseResultTypedDict(TypedDict):
|
|
13
|
+
conditions: NotRequired[List[int]]
|
|
14
|
+
r"""Trade conditions"""
|
|
15
|
+
correction: NotRequired[int]
|
|
16
|
+
r"""Correction indicator"""
|
|
17
|
+
exchange: NotRequired[int]
|
|
18
|
+
r"""Numeric exchange identifier supplied by the market data provider."""
|
|
19
|
+
id: NotRequired[str]
|
|
20
|
+
r"""Trade ID"""
|
|
21
|
+
participant_timestamp: NotRequired[int]
|
|
22
|
+
r"""Participant timestamp (nanoseconds)"""
|
|
23
|
+
price: NotRequired[float]
|
|
24
|
+
r"""Trade price"""
|
|
25
|
+
sequence_number: NotRequired[int]
|
|
26
|
+
r"""Sequence number"""
|
|
27
|
+
sip_timestamp: NotRequired[int]
|
|
28
|
+
r"""SIP timestamp (nanoseconds)"""
|
|
29
|
+
size: NotRequired[float]
|
|
30
|
+
r"""Trade size (shares)"""
|
|
31
|
+
tape: NotRequired[int]
|
|
32
|
+
r"""Tape"""
|
|
33
|
+
trf_id: NotRequired[int]
|
|
34
|
+
r"""TRF ID"""
|
|
35
|
+
trf_timestamp: NotRequired[int]
|
|
36
|
+
r"""TRF timestamp"""
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class StockTradesResponseResult(BaseModel):
|
|
40
|
+
conditions: Optional[List[int]] = None
|
|
41
|
+
r"""Trade conditions"""
|
|
42
|
+
|
|
43
|
+
correction: Optional[int] = None
|
|
44
|
+
r"""Correction indicator"""
|
|
45
|
+
|
|
46
|
+
exchange: Optional[int] = None
|
|
47
|
+
r"""Numeric exchange identifier supplied by the market data provider."""
|
|
48
|
+
|
|
49
|
+
id: Optional[str] = None
|
|
50
|
+
r"""Trade ID"""
|
|
51
|
+
|
|
52
|
+
participant_timestamp: Annotated[
|
|
53
|
+
Optional[int], pydantic.Field(alias="participantTimestamp")
|
|
54
|
+
] = None
|
|
55
|
+
r"""Participant timestamp (nanoseconds)"""
|
|
56
|
+
|
|
57
|
+
price: Optional[float] = None
|
|
58
|
+
r"""Trade price"""
|
|
59
|
+
|
|
60
|
+
sequence_number: Annotated[
|
|
61
|
+
Optional[int], pydantic.Field(alias="sequenceNumber")
|
|
62
|
+
] = None
|
|
63
|
+
r"""Sequence number"""
|
|
64
|
+
|
|
65
|
+
sip_timestamp: Annotated[Optional[int], pydantic.Field(alias="sipTimestamp")] = None
|
|
66
|
+
r"""SIP timestamp (nanoseconds)"""
|
|
67
|
+
|
|
68
|
+
size: Optional[float] = None
|
|
69
|
+
r"""Trade size (shares)"""
|
|
70
|
+
|
|
71
|
+
tape: Optional[int] = None
|
|
72
|
+
r"""Tape"""
|
|
73
|
+
|
|
74
|
+
trf_id: Annotated[Optional[int], pydantic.Field(alias="trfId")] = None
|
|
75
|
+
r"""TRF ID"""
|
|
76
|
+
|
|
77
|
+
trf_timestamp: Annotated[Optional[int], pydantic.Field(alias="trfTimestamp")] = None
|
|
78
|
+
r"""TRF timestamp"""
|
|
79
|
+
|
|
80
|
+
@model_serializer(mode="wrap")
|
|
81
|
+
def serialize_model(self, handler):
|
|
82
|
+
optional_fields = set(
|
|
83
|
+
[
|
|
84
|
+
"conditions",
|
|
85
|
+
"correction",
|
|
86
|
+
"exchange",
|
|
87
|
+
"id",
|
|
88
|
+
"participantTimestamp",
|
|
89
|
+
"price",
|
|
90
|
+
"sequenceNumber",
|
|
91
|
+
"sipTimestamp",
|
|
92
|
+
"size",
|
|
93
|
+
"tape",
|
|
94
|
+
"trfId",
|
|
95
|
+
"trfTimestamp",
|
|
96
|
+
]
|
|
97
|
+
)
|
|
98
|
+
serialized = handler(self)
|
|
99
|
+
m = {}
|
|
100
|
+
|
|
101
|
+
for n, f in type(self).model_fields.items():
|
|
102
|
+
k = f.alias or n
|
|
103
|
+
val = serialized.get(k, serialized.get(n))
|
|
104
|
+
|
|
105
|
+
if val != UNSET_SENTINEL:
|
|
106
|
+
if val is not None or k not in optional_fields:
|
|
107
|
+
m[k] = val
|
|
108
|
+
|
|
109
|
+
return m
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
class StockTradesResponseTypedDict(TypedDict):
|
|
113
|
+
r"""Paginated list of historical tick-level trades for a stock ticker."""
|
|
114
|
+
|
|
115
|
+
next_url: NotRequired[str]
|
|
116
|
+
r"""URL for next page of results"""
|
|
117
|
+
request_id: NotRequired[str]
|
|
118
|
+
r"""Unique request ID"""
|
|
119
|
+
results: NotRequired[List[StockTradesResponseResultTypedDict]]
|
|
120
|
+
r"""Array of trade objects"""
|
|
121
|
+
status: NotRequired[str]
|
|
122
|
+
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."""
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
class StockTradesResponse(BaseModel):
|
|
126
|
+
r"""Paginated list of historical tick-level trades for a stock ticker."""
|
|
127
|
+
|
|
128
|
+
next_url: Annotated[Optional[str], pydantic.Field(alias="nextUrl")] = None
|
|
129
|
+
r"""URL for next page of results"""
|
|
130
|
+
|
|
131
|
+
request_id: Annotated[Optional[str], pydantic.Field(alias="requestId")] = None
|
|
132
|
+
r"""Unique request ID"""
|
|
133
|
+
|
|
134
|
+
results: Optional[List[StockTradesResponseResult]] = None
|
|
135
|
+
r"""Array of trade objects"""
|
|
136
|
+
|
|
137
|
+
status: Optional[str] = None
|
|
138
|
+
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."""
|
|
139
|
+
|
|
140
|
+
@model_serializer(mode="wrap")
|
|
141
|
+
def serialize_model(self, handler):
|
|
142
|
+
optional_fields = set(["nextUrl", "requestId", "results", "status"])
|
|
143
|
+
serialized = handler(self)
|
|
144
|
+
m = {}
|
|
145
|
+
|
|
146
|
+
for n, f in type(self).model_fields.items():
|
|
147
|
+
k = f.alias or n
|
|
148
|
+
val = serialized.get(k, serialized.get(n))
|
|
149
|
+
|
|
150
|
+
if val != UNSET_SENTINEL:
|
|
151
|
+
if val is not None or k not in optional_fields:
|
|
152
|
+
m[k] = val
|
|
153
|
+
|
|
154
|
+
return m
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
try:
|
|
158
|
+
StockTradesResponseResult.model_rebuild()
|
|
159
|
+
except NameError:
|
|
160
|
+
pass
|
|
161
|
+
try:
|
|
162
|
+
StockTradesResponse.model_rebuild()
|
|
163
|
+
except NameError:
|
|
164
|
+
pass
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 1edd5fdda7b1
|
|
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 SupplyChainResponseDataTypedDict(TypedDict):
|
|
13
|
+
country: NotRequired[str]
|
|
14
|
+
r"""Country of the related company."""
|
|
15
|
+
customer: NotRequired[bool]
|
|
16
|
+
r"""Whether the related company is a customer."""
|
|
17
|
+
industry: NotRequired[str]
|
|
18
|
+
r"""Industry of the related company."""
|
|
19
|
+
name: NotRequired[str]
|
|
20
|
+
r"""Name of the related company."""
|
|
21
|
+
one_month_correlation: NotRequired[float]
|
|
22
|
+
r"""Price correlation with the related company over one month."""
|
|
23
|
+
one_year_correlation: NotRequired[float]
|
|
24
|
+
r"""Price correlation with the related company over one year."""
|
|
25
|
+
six_month_correlation: NotRequired[float]
|
|
26
|
+
r"""Price correlation with the related company over six months."""
|
|
27
|
+
supplier: NotRequired[bool]
|
|
28
|
+
r"""Whether the related company is a supplier."""
|
|
29
|
+
symbol: NotRequired[str]
|
|
30
|
+
r"""Ticker symbol of the related company."""
|
|
31
|
+
three_month_correlation: NotRequired[float]
|
|
32
|
+
r"""Price correlation with the related company over three months."""
|
|
33
|
+
two_week_correlation: NotRequired[float]
|
|
34
|
+
r"""Price correlation with the related company over two weeks."""
|
|
35
|
+
two_year_correlation: NotRequired[float]
|
|
36
|
+
r"""Price correlation with the related company over two years."""
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class SupplyChainResponseData(BaseModel):
|
|
40
|
+
country: Optional[str] = None
|
|
41
|
+
r"""Country of the related company."""
|
|
42
|
+
|
|
43
|
+
customer: Optional[bool] = None
|
|
44
|
+
r"""Whether the related company is a customer."""
|
|
45
|
+
|
|
46
|
+
industry: Optional[str] = None
|
|
47
|
+
r"""Industry of the related company."""
|
|
48
|
+
|
|
49
|
+
name: Optional[str] = None
|
|
50
|
+
r"""Name of the related company."""
|
|
51
|
+
|
|
52
|
+
one_month_correlation: Annotated[
|
|
53
|
+
Optional[float], pydantic.Field(alias="oneMonthCorrelation")
|
|
54
|
+
] = None
|
|
55
|
+
r"""Price correlation with the related company over one month."""
|
|
56
|
+
|
|
57
|
+
one_year_correlation: Annotated[
|
|
58
|
+
Optional[float], pydantic.Field(alias="oneYearCorrelation")
|
|
59
|
+
] = None
|
|
60
|
+
r"""Price correlation with the related company over one year."""
|
|
61
|
+
|
|
62
|
+
six_month_correlation: Annotated[
|
|
63
|
+
Optional[float], pydantic.Field(alias="sixMonthCorrelation")
|
|
64
|
+
] = None
|
|
65
|
+
r"""Price correlation with the related company over six months."""
|
|
66
|
+
|
|
67
|
+
supplier: Optional[bool] = None
|
|
68
|
+
r"""Whether the related company is a supplier."""
|
|
69
|
+
|
|
70
|
+
symbol: Optional[str] = None
|
|
71
|
+
r"""Ticker symbol of the related company."""
|
|
72
|
+
|
|
73
|
+
three_month_correlation: Annotated[
|
|
74
|
+
Optional[float], pydantic.Field(alias="threeMonthCorrelation")
|
|
75
|
+
] = None
|
|
76
|
+
r"""Price correlation with the related company over three months."""
|
|
77
|
+
|
|
78
|
+
two_week_correlation: Annotated[
|
|
79
|
+
Optional[float], pydantic.Field(alias="twoWeekCorrelation")
|
|
80
|
+
] = None
|
|
81
|
+
r"""Price correlation with the related company over two weeks."""
|
|
82
|
+
|
|
83
|
+
two_year_correlation: Annotated[
|
|
84
|
+
Optional[float], pydantic.Field(alias="twoYearCorrelation")
|
|
85
|
+
] = None
|
|
86
|
+
r"""Price correlation with the related company over two years."""
|
|
87
|
+
|
|
88
|
+
@model_serializer(mode="wrap")
|
|
89
|
+
def serialize_model(self, handler):
|
|
90
|
+
optional_fields = set(
|
|
91
|
+
[
|
|
92
|
+
"country",
|
|
93
|
+
"customer",
|
|
94
|
+
"industry",
|
|
95
|
+
"name",
|
|
96
|
+
"oneMonthCorrelation",
|
|
97
|
+
"oneYearCorrelation",
|
|
98
|
+
"sixMonthCorrelation",
|
|
99
|
+
"supplier",
|
|
100
|
+
"symbol",
|
|
101
|
+
"threeMonthCorrelation",
|
|
102
|
+
"twoWeekCorrelation",
|
|
103
|
+
"twoYearCorrelation",
|
|
104
|
+
]
|
|
105
|
+
)
|
|
106
|
+
serialized = handler(self)
|
|
107
|
+
m = {}
|
|
108
|
+
|
|
109
|
+
for n, f in type(self).model_fields.items():
|
|
110
|
+
k = f.alias or n
|
|
111
|
+
val = serialized.get(k, serialized.get(n))
|
|
112
|
+
|
|
113
|
+
if val != UNSET_SENTINEL:
|
|
114
|
+
if val is not None or k not in optional_fields:
|
|
115
|
+
m[k] = val
|
|
116
|
+
|
|
117
|
+
return m
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
class SupplyChainResponseTypedDict(TypedDict):
|
|
121
|
+
r"""Supply chain relationships (suppliers and customers) for a company."""
|
|
122
|
+
|
|
123
|
+
data: NotRequired[List[SupplyChainResponseDataTypedDict]]
|
|
124
|
+
r"""Related companies in the supply chain."""
|
|
125
|
+
symbol: NotRequired[str]
|
|
126
|
+
r"""Ticker symbol of the company."""
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
class SupplyChainResponse(BaseModel):
|
|
130
|
+
r"""Supply chain relationships (suppliers and customers) for a company."""
|
|
131
|
+
|
|
132
|
+
data: Optional[List[SupplyChainResponseData]] = None
|
|
133
|
+
r"""Related companies in the supply chain."""
|
|
134
|
+
|
|
135
|
+
symbol: Optional[str] = None
|
|
136
|
+
r"""Ticker symbol of the company."""
|
|
137
|
+
|
|
138
|
+
@model_serializer(mode="wrap")
|
|
139
|
+
def serialize_model(self, handler):
|
|
140
|
+
optional_fields = set(["data", "symbol"])
|
|
141
|
+
serialized = handler(self)
|
|
142
|
+
m = {}
|
|
143
|
+
|
|
144
|
+
for n, f in type(self).model_fields.items():
|
|
145
|
+
k = f.alias or n
|
|
146
|
+
val = serialized.get(k, serialized.get(n))
|
|
147
|
+
|
|
148
|
+
if val != UNSET_SENTINEL:
|
|
149
|
+
if val is not None or k not in optional_fields:
|
|
150
|
+
m[k] = val
|
|
151
|
+
|
|
152
|
+
return m
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
try:
|
|
156
|
+
SupplyChainResponseData.model_rebuild()
|
|
157
|
+
except NameError:
|
|
158
|
+
pass
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 7ce068aa1c31
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
6
|
+
from pydantic import model_serializer
|
|
7
|
+
from typing import List, Optional
|
|
8
|
+
from typing_extensions import NotRequired, TypedDict
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class SupportResistanceLevelsResponseDataTypedDict(TypedDict):
|
|
12
|
+
r"""Support and resistance payload."""
|
|
13
|
+
|
|
14
|
+
levels: NotRequired[List[float]]
|
|
15
|
+
r"""List of support and resistance price levels."""
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class SupportResistanceLevelsResponseData(BaseModel):
|
|
19
|
+
r"""Support and resistance payload."""
|
|
20
|
+
|
|
21
|
+
levels: Optional[List[float]] = None
|
|
22
|
+
r"""List of support and resistance price levels."""
|
|
23
|
+
|
|
24
|
+
@model_serializer(mode="wrap")
|
|
25
|
+
def serialize_model(self, handler):
|
|
26
|
+
optional_fields = set(["levels"])
|
|
27
|
+
serialized = handler(self)
|
|
28
|
+
m = {}
|
|
29
|
+
|
|
30
|
+
for n, f in type(self).model_fields.items():
|
|
31
|
+
k = f.alias or n
|
|
32
|
+
val = serialized.get(k, serialized.get(n))
|
|
33
|
+
|
|
34
|
+
if val != UNSET_SENTINEL:
|
|
35
|
+
if val is not None or k not in optional_fields:
|
|
36
|
+
m[k] = val
|
|
37
|
+
|
|
38
|
+
return m
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class SupportResistanceLevelsResponseTypedDict(TypedDict):
|
|
42
|
+
r"""Support and resistance price levels for a symbol and resolution from Finnhub."""
|
|
43
|
+
|
|
44
|
+
data: NotRequired[SupportResistanceLevelsResponseDataTypedDict]
|
|
45
|
+
r"""Support and resistance payload."""
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class SupportResistanceLevelsResponse(BaseModel):
|
|
49
|
+
r"""Support and resistance price levels for a symbol and resolution from Finnhub."""
|
|
50
|
+
|
|
51
|
+
data: Optional[SupportResistanceLevelsResponseData] = None
|
|
52
|
+
r"""Support and resistance payload."""
|
|
53
|
+
|
|
54
|
+
@model_serializer(mode="wrap")
|
|
55
|
+
def serialize_model(self, handler):
|
|
56
|
+
optional_fields = set(["data"])
|
|
57
|
+
serialized = handler(self)
|
|
58
|
+
m = {}
|
|
59
|
+
|
|
60
|
+
for n, f in type(self).model_fields.items():
|
|
61
|
+
k = f.alias or n
|
|
62
|
+
val = serialized.get(k, serialized.get(n))
|
|
63
|
+
|
|
64
|
+
if val != UNSET_SENTINEL:
|
|
65
|
+
if val is not None or k not in optional_fields:
|
|
66
|
+
m[k] = val
|
|
67
|
+
|
|
68
|
+
return m
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 1c2726ca5c1b
|
|
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 SymbolDetailsTypedDict(TypedDict):
|
|
13
|
+
r"""Compact symbol summary returned by top movers and activity endpoints. Use it for market lists such as gainers, losers, and most active."""
|
|
14
|
+
|
|
15
|
+
change: NotRequired[float]
|
|
16
|
+
r"""Price change from previous close"""
|
|
17
|
+
change_percent: NotRequired[float]
|
|
18
|
+
r"""Percentage change from previous close"""
|
|
19
|
+
is_etf: NotRequired[bool]
|
|
20
|
+
r"""Whether the symbol is an ETF"""
|
|
21
|
+
last_price: NotRequired[float]
|
|
22
|
+
r"""Most recent trading price"""
|
|
23
|
+
logo_url: NotRequired[str]
|
|
24
|
+
r"""URL to the company or ETF logo. Use it for visual identification in symbol lists."""
|
|
25
|
+
previous_close: NotRequired[float]
|
|
26
|
+
r"""Previous session close price. Use it as the baseline for change and changePercent."""
|
|
27
|
+
sector: NotRequired[str]
|
|
28
|
+
r"""Sector classification for the asset. Use it for grouping and filtering symbol lists."""
|
|
29
|
+
sic_code: NotRequired[str]
|
|
30
|
+
r"""Standard Industrial Classification code"""
|
|
31
|
+
symbol: NotRequired[str]
|
|
32
|
+
r"""Trading symbol for the asset. Use this exact value when fetching quotes, charts, or research."""
|
|
33
|
+
timestamp: NotRequired[float]
|
|
34
|
+
r"""Timestamp of the last update"""
|
|
35
|
+
type: NotRequired[str]
|
|
36
|
+
r"""Instrument class or provider category returned by the market data service. This value is not the trading order type."""
|
|
37
|
+
volume: NotRequired[float]
|
|
38
|
+
r"""Shares or contracts traded during the session. Use it to rank activity and liquidity."""
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class SymbolDetails(BaseModel):
|
|
42
|
+
r"""Compact symbol summary returned by top movers and activity endpoints. Use it for market lists such as gainers, losers, and most active."""
|
|
43
|
+
|
|
44
|
+
change: Optional[float] = None
|
|
45
|
+
r"""Price change from previous close"""
|
|
46
|
+
|
|
47
|
+
change_percent: Annotated[
|
|
48
|
+
Optional[float], pydantic.Field(alias="changePercent")
|
|
49
|
+
] = None
|
|
50
|
+
r"""Percentage change from previous close"""
|
|
51
|
+
|
|
52
|
+
is_etf: Annotated[Optional[bool], pydantic.Field(alias="isETF")] = None
|
|
53
|
+
r"""Whether the symbol is an ETF"""
|
|
54
|
+
|
|
55
|
+
last_price: Annotated[Optional[float], pydantic.Field(alias="lastPrice")] = None
|
|
56
|
+
r"""Most recent trading price"""
|
|
57
|
+
|
|
58
|
+
logo_url: Annotated[Optional[str], pydantic.Field(alias="logoUrl")] = None
|
|
59
|
+
r"""URL to the company or ETF logo. Use it for visual identification in symbol lists."""
|
|
60
|
+
|
|
61
|
+
previous_close: Annotated[
|
|
62
|
+
Optional[float], pydantic.Field(alias="previousClose")
|
|
63
|
+
] = None
|
|
64
|
+
r"""Previous session close price. Use it as the baseline for change and changePercent."""
|
|
65
|
+
|
|
66
|
+
sector: Optional[str] = None
|
|
67
|
+
r"""Sector classification for the asset. Use it for grouping and filtering symbol lists."""
|
|
68
|
+
|
|
69
|
+
sic_code: Annotated[Optional[str], pydantic.Field(alias="sicCode")] = None
|
|
70
|
+
r"""Standard Industrial Classification code"""
|
|
71
|
+
|
|
72
|
+
symbol: Optional[str] = None
|
|
73
|
+
r"""Trading symbol for the asset. Use this exact value when fetching quotes, charts, or research."""
|
|
74
|
+
|
|
75
|
+
timestamp: Optional[float] = None
|
|
76
|
+
r"""Timestamp of the last update"""
|
|
77
|
+
|
|
78
|
+
type: Optional[str] = None
|
|
79
|
+
r"""Instrument class or provider category returned by the market data service. This value is not the trading order type."""
|
|
80
|
+
|
|
81
|
+
volume: Optional[float] = None
|
|
82
|
+
r"""Shares or contracts traded during the session. Use it to rank activity and liquidity."""
|
|
83
|
+
|
|
84
|
+
@model_serializer(mode="wrap")
|
|
85
|
+
def serialize_model(self, handler):
|
|
86
|
+
optional_fields = set(
|
|
87
|
+
[
|
|
88
|
+
"change",
|
|
89
|
+
"changePercent",
|
|
90
|
+
"isETF",
|
|
91
|
+
"lastPrice",
|
|
92
|
+
"logoUrl",
|
|
93
|
+
"previousClose",
|
|
94
|
+
"sector",
|
|
95
|
+
"sicCode",
|
|
96
|
+
"symbol",
|
|
97
|
+
"timestamp",
|
|
98
|
+
"type",
|
|
99
|
+
"volume",
|
|
100
|
+
]
|
|
101
|
+
)
|
|
102
|
+
serialized = handler(self)
|
|
103
|
+
m = {}
|
|
104
|
+
|
|
105
|
+
for n, f in type(self).model_fields.items():
|
|
106
|
+
k = f.alias or n
|
|
107
|
+
val = serialized.get(k, serialized.get(n))
|
|
108
|
+
|
|
109
|
+
if val != UNSET_SENTINEL:
|
|
110
|
+
if val is not None or k not in optional_fields:
|
|
111
|
+
m[k] = val
|
|
112
|
+
|
|
113
|
+
return m
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
try:
|
|
117
|
+
SymbolDetails.model_rebuild()
|
|
118
|
+
except NameError:
|
|
119
|
+
pass
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: c5c04db1a652
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
6
|
+
from pydantic import model_serializer
|
|
7
|
+
from typing import Optional
|
|
8
|
+
from typing_extensions import NotRequired, TypedDict
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class SymbolErrorTypedDict(TypedDict):
|
|
12
|
+
r"""Error entry for a symbol that could not be resolved in a details request."""
|
|
13
|
+
|
|
14
|
+
error: NotRequired[str]
|
|
15
|
+
r"""Error detail as a string. Exact message content is not fixed and should not be hard-coded."""
|
|
16
|
+
symbol: NotRequired[str]
|
|
17
|
+
r"""Symbol that had an error"""
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class SymbolError(BaseModel):
|
|
21
|
+
r"""Error entry for a symbol that could not be resolved in a details request."""
|
|
22
|
+
|
|
23
|
+
error: Optional[str] = None
|
|
24
|
+
r"""Error detail as a string. Exact message content is not fixed and should not be hard-coded."""
|
|
25
|
+
|
|
26
|
+
symbol: Optional[str] = None
|
|
27
|
+
r"""Symbol that had an error"""
|
|
28
|
+
|
|
29
|
+
@model_serializer(mode="wrap")
|
|
30
|
+
def serialize_model(self, handler):
|
|
31
|
+
optional_fields = set(["error", "symbol"])
|
|
32
|
+
serialized = handler(self)
|
|
33
|
+
m = {}
|
|
34
|
+
|
|
35
|
+
for n, f in type(self).model_fields.items():
|
|
36
|
+
k = f.alias or n
|
|
37
|
+
val = serialized.get(k, serialized.get(n))
|
|
38
|
+
|
|
39
|
+
if val != UNSET_SENTINEL:
|
|
40
|
+
if val is not None or k not in optional_fields:
|
|
41
|
+
m[k] = val
|
|
42
|
+
|
|
43
|
+
return m
|