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,243 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 4e7c827b3f40
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .metricseriespoint import MetricSeriesPoint, MetricSeriesPointTypedDict
|
|
6
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
7
|
+
import pydantic
|
|
8
|
+
from pydantic import ConfigDict, model_serializer
|
|
9
|
+
from typing import Dict, List, Optional, Union
|
|
10
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class MetricTypedDict(TypedDict):
|
|
14
|
+
r"""Current financial metrics and ratios (dynamic object with various metric keys)"""
|
|
15
|
+
|
|
16
|
+
ten_day_average_trading_volume: NotRequired[float]
|
|
17
|
+
r"""Average daily trading volume over the last 10 days"""
|
|
18
|
+
fifty_two_week_high: NotRequired[float]
|
|
19
|
+
r"""Highest stock price in the last 52 weeks"""
|
|
20
|
+
fifty_two_week_high_date: NotRequired[str]
|
|
21
|
+
r"""Date when the 52-week high was reached"""
|
|
22
|
+
fifty_two_week_low: NotRequired[float]
|
|
23
|
+
r"""Lowest stock price in the last 52 weeks"""
|
|
24
|
+
fifty_two_week_low_date: NotRequired[str]
|
|
25
|
+
r"""Date when the 52-week low was reached"""
|
|
26
|
+
fifty_two_week_price_return_daily: NotRequired[float]
|
|
27
|
+
r"""Price return over the last 52 weeks (daily calculation)"""
|
|
28
|
+
beta: NotRequired[float]
|
|
29
|
+
r"""Stock's beta coefficient measuring volatility relative to the market"""
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
class Metric(BaseModel):
|
|
33
|
+
r"""Current financial metrics and ratios (dynamic object with various metric keys)"""
|
|
34
|
+
|
|
35
|
+
model_config = ConfigDict(
|
|
36
|
+
populate_by_name=True, arbitrary_types_allowed=True, extra="allow"
|
|
37
|
+
)
|
|
38
|
+
__pydantic_extra__: Dict[str, Optional[Union[float, str]]] = pydantic.Field(init=False)
|
|
39
|
+
|
|
40
|
+
ten_day_average_trading_volume: Annotated[
|
|
41
|
+
Optional[float], pydantic.Field(alias="10DayAverageTradingVolume")
|
|
42
|
+
] = None
|
|
43
|
+
r"""Average daily trading volume over the last 10 days"""
|
|
44
|
+
|
|
45
|
+
fifty_two_week_high: Annotated[
|
|
46
|
+
Optional[float], pydantic.Field(alias="52WeekHigh")
|
|
47
|
+
] = None
|
|
48
|
+
r"""Highest stock price in the last 52 weeks"""
|
|
49
|
+
|
|
50
|
+
fifty_two_week_high_date: Annotated[
|
|
51
|
+
Optional[str], pydantic.Field(alias="52WeekHighDate")
|
|
52
|
+
] = None
|
|
53
|
+
r"""Date when the 52-week high was reached"""
|
|
54
|
+
|
|
55
|
+
fifty_two_week_low: Annotated[
|
|
56
|
+
Optional[float], pydantic.Field(alias="52WeekLow")
|
|
57
|
+
] = None
|
|
58
|
+
r"""Lowest stock price in the last 52 weeks"""
|
|
59
|
+
|
|
60
|
+
fifty_two_week_low_date: Annotated[
|
|
61
|
+
Optional[str], pydantic.Field(alias="52WeekLowDate")
|
|
62
|
+
] = None
|
|
63
|
+
r"""Date when the 52-week low was reached"""
|
|
64
|
+
|
|
65
|
+
fifty_two_week_price_return_daily: Annotated[
|
|
66
|
+
Optional[float], pydantic.Field(alias="52WeekPriceReturnDaily")
|
|
67
|
+
] = None
|
|
68
|
+
r"""Price return over the last 52 weeks (daily calculation)"""
|
|
69
|
+
|
|
70
|
+
beta: Optional[float] = None
|
|
71
|
+
r"""Stock's beta coefficient measuring volatility relative to the market"""
|
|
72
|
+
|
|
73
|
+
@property
|
|
74
|
+
def additional_properties(self):
|
|
75
|
+
return self.__pydantic_extra__
|
|
76
|
+
|
|
77
|
+
@additional_properties.setter
|
|
78
|
+
def additional_properties(self, value):
|
|
79
|
+
self.__pydantic_extra__ = value # pyright: ignore[reportIncompatibleVariableOverride]
|
|
80
|
+
|
|
81
|
+
@model_serializer(mode="wrap")
|
|
82
|
+
def serialize_model(self, handler):
|
|
83
|
+
optional_fields = set(
|
|
84
|
+
[
|
|
85
|
+
"10DayAverageTradingVolume",
|
|
86
|
+
"52WeekHigh",
|
|
87
|
+
"52WeekHighDate",
|
|
88
|
+
"52WeekLow",
|
|
89
|
+
"52WeekLowDate",
|
|
90
|
+
"52WeekPriceReturnDaily",
|
|
91
|
+
"beta",
|
|
92
|
+
]
|
|
93
|
+
)
|
|
94
|
+
serialized = handler(self)
|
|
95
|
+
m = {}
|
|
96
|
+
|
|
97
|
+
for n, f in type(self).model_fields.items():
|
|
98
|
+
k = f.alias or n
|
|
99
|
+
val = serialized.get(k, serialized.get(n))
|
|
100
|
+
serialized.pop(k, serialized.pop(n, None))
|
|
101
|
+
|
|
102
|
+
if val != UNSET_SENTINEL:
|
|
103
|
+
if val is not None or k not in optional_fields:
|
|
104
|
+
m[k] = val
|
|
105
|
+
for k, v in serialized.items():
|
|
106
|
+
m[k] = v
|
|
107
|
+
|
|
108
|
+
return m
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
class AnnualTypedDict(TypedDict):
|
|
112
|
+
r"""Annual financial metrics organized by type"""
|
|
113
|
+
|
|
114
|
+
current_ratio: NotRequired[List[MetricSeriesPointTypedDict]]
|
|
115
|
+
r"""Current ratio values over time (current assets / current liabilities)"""
|
|
116
|
+
net_margin: NotRequired[List[MetricSeriesPointTypedDict]]
|
|
117
|
+
r"""Net profit margin values over time"""
|
|
118
|
+
sales_per_share: NotRequired[List[MetricSeriesPointTypedDict]]
|
|
119
|
+
r"""Sales per share values over time"""
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
class Annual(BaseModel):
|
|
123
|
+
r"""Annual financial metrics organized by type"""
|
|
124
|
+
|
|
125
|
+
current_ratio: Annotated[
|
|
126
|
+
Optional[List[MetricSeriesPoint]], pydantic.Field(alias="currentRatio")
|
|
127
|
+
] = None
|
|
128
|
+
r"""Current ratio values over time (current assets / current liabilities)"""
|
|
129
|
+
|
|
130
|
+
net_margin: Annotated[
|
|
131
|
+
Optional[List[MetricSeriesPoint]], pydantic.Field(alias="netMargin")
|
|
132
|
+
] = None
|
|
133
|
+
r"""Net profit margin values over time"""
|
|
134
|
+
|
|
135
|
+
sales_per_share: Annotated[
|
|
136
|
+
Optional[List[MetricSeriesPoint]], pydantic.Field(alias="salesPerShare")
|
|
137
|
+
] = None
|
|
138
|
+
r"""Sales per share values over time"""
|
|
139
|
+
|
|
140
|
+
@model_serializer(mode="wrap")
|
|
141
|
+
def serialize_model(self, handler):
|
|
142
|
+
optional_fields = set(["currentRatio", "netMargin", "salesPerShare"])
|
|
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
|
+
class SeriesTypedDict(TypedDict):
|
|
158
|
+
r"""Time series data for various financial metrics"""
|
|
159
|
+
|
|
160
|
+
annual: NotRequired[AnnualTypedDict]
|
|
161
|
+
r"""Annual financial metrics organized by type"""
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
class Series(BaseModel):
|
|
165
|
+
r"""Time series data for various financial metrics"""
|
|
166
|
+
|
|
167
|
+
annual: Optional[Annual] = None
|
|
168
|
+
r"""Annual financial metrics organized by type"""
|
|
169
|
+
|
|
170
|
+
@model_serializer(mode="wrap")
|
|
171
|
+
def serialize_model(self, handler):
|
|
172
|
+
optional_fields = set(["annual"])
|
|
173
|
+
serialized = handler(self)
|
|
174
|
+
m = {}
|
|
175
|
+
|
|
176
|
+
for n, f in type(self).model_fields.items():
|
|
177
|
+
k = f.alias or n
|
|
178
|
+
val = serialized.get(k, serialized.get(n))
|
|
179
|
+
|
|
180
|
+
if val != UNSET_SENTINEL:
|
|
181
|
+
if val is not None or k not in optional_fields:
|
|
182
|
+
m[k] = val
|
|
183
|
+
|
|
184
|
+
return m
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
class BasicFinancialsTypedDict(TypedDict):
|
|
188
|
+
r"""Basic financial metrics for company research. Use these values for valuation, profitability, and balance-sheet trend displays."""
|
|
189
|
+
|
|
190
|
+
metric: NotRequired[MetricTypedDict]
|
|
191
|
+
r"""Current financial metrics and ratios (dynamic object with various metric keys)"""
|
|
192
|
+
metric_type: NotRequired[str]
|
|
193
|
+
r"""Type of metrics returned (all, price, valuation, margin)"""
|
|
194
|
+
series: NotRequired[SeriesTypedDict]
|
|
195
|
+
r"""Time series data for various financial metrics"""
|
|
196
|
+
symbol: NotRequired[str]
|
|
197
|
+
r"""Stock ticker symbol these financial metrics belong to. Use it to match the metrics back to the requested company."""
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
class BasicFinancials(BaseModel):
|
|
201
|
+
r"""Basic financial metrics for company research. Use these values for valuation, profitability, and balance-sheet trend displays."""
|
|
202
|
+
|
|
203
|
+
metric: Optional[Metric] = None
|
|
204
|
+
r"""Current financial metrics and ratios (dynamic object with various metric keys)"""
|
|
205
|
+
|
|
206
|
+
metric_type: Annotated[Optional[str], pydantic.Field(alias="metricType")] = None
|
|
207
|
+
r"""Type of metrics returned (all, price, valuation, margin)"""
|
|
208
|
+
|
|
209
|
+
series: Optional[Series] = None
|
|
210
|
+
r"""Time series data for various financial metrics"""
|
|
211
|
+
|
|
212
|
+
symbol: Optional[str] = None
|
|
213
|
+
r"""Stock ticker symbol these financial metrics belong to. Use it to match the metrics back to the requested company."""
|
|
214
|
+
|
|
215
|
+
@model_serializer(mode="wrap")
|
|
216
|
+
def serialize_model(self, handler):
|
|
217
|
+
optional_fields = set(["metric", "metricType", "series", "symbol"])
|
|
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
|
+
try:
|
|
233
|
+
Metric.model_rebuild()
|
|
234
|
+
except NameError:
|
|
235
|
+
pass
|
|
236
|
+
try:
|
|
237
|
+
Annual.model_rebuild()
|
|
238
|
+
except NameError:
|
|
239
|
+
pass
|
|
240
|
+
try:
|
|
241
|
+
BasicFinancials.model_rebuild()
|
|
242
|
+
except NameError:
|
|
243
|
+
pass
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 0b163bccd680
|
|
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 BullBearAnalysisResponseSecurityTypedDict(TypedDict):
|
|
13
|
+
cik: NotRequired[str]
|
|
14
|
+
r"""SEC Central Index Key"""
|
|
15
|
+
exchange: NotRequired[str]
|
|
16
|
+
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."""
|
|
17
|
+
isin: NotRequired[str]
|
|
18
|
+
r"""International Securities Identification Number"""
|
|
19
|
+
name: NotRequired[str]
|
|
20
|
+
r"""Company name"""
|
|
21
|
+
symbol: NotRequired[str]
|
|
22
|
+
r"""Stock ticker symbol, such as AAPL. Use the exact ticker for the company you want to research."""
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class BullBearAnalysisResponseSecurity(BaseModel):
|
|
26
|
+
cik: Optional[str] = None
|
|
27
|
+
r"""SEC Central Index Key"""
|
|
28
|
+
|
|
29
|
+
exchange: Optional[str] = None
|
|
30
|
+
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."""
|
|
31
|
+
|
|
32
|
+
isin: Optional[str] = None
|
|
33
|
+
r"""International Securities Identification Number"""
|
|
34
|
+
|
|
35
|
+
name: Optional[str] = None
|
|
36
|
+
r"""Company name"""
|
|
37
|
+
|
|
38
|
+
symbol: Optional[str] = None
|
|
39
|
+
r"""Stock ticker symbol, such as AAPL. Use the exact ticker for the company you want to research."""
|
|
40
|
+
|
|
41
|
+
@model_serializer(mode="wrap")
|
|
42
|
+
def serialize_model(self, handler):
|
|
43
|
+
optional_fields = set(["cik", "exchange", "isin", "name", "symbol"])
|
|
44
|
+
serialized = handler(self)
|
|
45
|
+
m = {}
|
|
46
|
+
|
|
47
|
+
for n, f in type(self).model_fields.items():
|
|
48
|
+
k = f.alias or n
|
|
49
|
+
val = serialized.get(k, serialized.get(n))
|
|
50
|
+
|
|
51
|
+
if val != UNSET_SENTINEL:
|
|
52
|
+
if val is not None or k not in optional_fields:
|
|
53
|
+
m[k] = val
|
|
54
|
+
|
|
55
|
+
return m
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
class BullBearCaseTypedDict(TypedDict):
|
|
59
|
+
bear_case: NotRequired[str]
|
|
60
|
+
r"""Bearish investment thesis describing risks and potential challenges"""
|
|
61
|
+
bull_case: NotRequired[str]
|
|
62
|
+
r"""Bullish investment thesis describing positive factors and growth opportunities"""
|
|
63
|
+
id: NotRequired[str]
|
|
64
|
+
r"""Unique identifier for the bull/bear case analysis"""
|
|
65
|
+
securities: NotRequired[List[BullBearAnalysisResponseSecurityTypedDict]]
|
|
66
|
+
r"""Array of securities associated with this ticker"""
|
|
67
|
+
ticker: NotRequired[str]
|
|
68
|
+
r"""Stock ticker symbol, such as AAPL. Use the exact ticker for the company you want to research."""
|
|
69
|
+
updated: NotRequired[int]
|
|
70
|
+
r"""Unix timestamp when the analysis was last updated"""
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
class BullBearCase(BaseModel):
|
|
74
|
+
bear_case: Annotated[Optional[str], pydantic.Field(alias="bearCase")] = None
|
|
75
|
+
r"""Bearish investment thesis describing risks and potential challenges"""
|
|
76
|
+
|
|
77
|
+
bull_case: Annotated[Optional[str], pydantic.Field(alias="bullCase")] = None
|
|
78
|
+
r"""Bullish investment thesis describing positive factors and growth opportunities"""
|
|
79
|
+
|
|
80
|
+
id: Optional[str] = None
|
|
81
|
+
r"""Unique identifier for the bull/bear case analysis"""
|
|
82
|
+
|
|
83
|
+
securities: Optional[List[BullBearAnalysisResponseSecurity]] = None
|
|
84
|
+
r"""Array of securities associated with this ticker"""
|
|
85
|
+
|
|
86
|
+
ticker: Optional[str] = None
|
|
87
|
+
r"""Stock ticker symbol, such as AAPL. Use the exact ticker for the company you want to research."""
|
|
88
|
+
|
|
89
|
+
updated: Optional[int] = None
|
|
90
|
+
r"""Unix timestamp when the analysis was last updated"""
|
|
91
|
+
|
|
92
|
+
@model_serializer(mode="wrap")
|
|
93
|
+
def serialize_model(self, handler):
|
|
94
|
+
optional_fields = set(
|
|
95
|
+
["bearCase", "bullCase", "id", "securities", "ticker", "updated"]
|
|
96
|
+
)
|
|
97
|
+
serialized = handler(self)
|
|
98
|
+
m = {}
|
|
99
|
+
|
|
100
|
+
for n, f in type(self).model_fields.items():
|
|
101
|
+
k = f.alias or n
|
|
102
|
+
val = serialized.get(k, serialized.get(n))
|
|
103
|
+
|
|
104
|
+
if val != UNSET_SENTINEL:
|
|
105
|
+
if val is not None or k not in optional_fields:
|
|
106
|
+
m[k] = val
|
|
107
|
+
|
|
108
|
+
return m
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
class BullBearAnalysisResponseTypedDict(TypedDict):
|
|
112
|
+
r"""Bull and bear investment cases for securities."""
|
|
113
|
+
|
|
114
|
+
bull_bear_cases: NotRequired[List[BullBearCaseTypedDict]]
|
|
115
|
+
r"""Array of bull and bear investment cases for securities"""
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
class BullBearAnalysisResponse(BaseModel):
|
|
119
|
+
r"""Bull and bear investment cases for securities."""
|
|
120
|
+
|
|
121
|
+
bull_bear_cases: Annotated[
|
|
122
|
+
Optional[List[BullBearCase]], pydantic.Field(alias="bullBearCases")
|
|
123
|
+
] = None
|
|
124
|
+
r"""Array of bull and bear investment cases for securities"""
|
|
125
|
+
|
|
126
|
+
@model_serializer(mode="wrap")
|
|
127
|
+
def serialize_model(self, handler):
|
|
128
|
+
optional_fields = set(["bullBearCases"])
|
|
129
|
+
serialized = handler(self)
|
|
130
|
+
m = {}
|
|
131
|
+
|
|
132
|
+
for n, f in type(self).model_fields.items():
|
|
133
|
+
k = f.alias or n
|
|
134
|
+
val = serialized.get(k, serialized.get(n))
|
|
135
|
+
|
|
136
|
+
if val != UNSET_SENTINEL:
|
|
137
|
+
if val is not None or k not in optional_fields:
|
|
138
|
+
m[k] = val
|
|
139
|
+
|
|
140
|
+
return m
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
try:
|
|
144
|
+
BullBearCase.model_rebuild()
|
|
145
|
+
except NameError:
|
|
146
|
+
pass
|
|
147
|
+
try:
|
|
148
|
+
BullBearAnalysisResponse.model_rebuild()
|
|
149
|
+
except NameError:
|
|
150
|
+
pass
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: efe1a013e7b1
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .cancelordresponse import CancelOrdResponse, CancelOrdResponseTypedDict
|
|
6
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
7
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
8
|
+
import pydantic
|
|
9
|
+
from pydantic import model_serializer
|
|
10
|
+
from typing import Optional
|
|
11
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class CancelOrderResponseTypedDict(TypedDict):
|
|
15
|
+
http_meta: HTTPMetadataTypedDict
|
|
16
|
+
cancel_ord_response: NotRequired[CancelOrdResponseTypedDict]
|
|
17
|
+
r"""Cancel request submitted successfully"""
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class CancelOrderResponse(BaseModel):
|
|
21
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
22
|
+
|
|
23
|
+
cancel_ord_response: Optional[CancelOrdResponse] = None
|
|
24
|
+
r"""Cancel request submitted successfully"""
|
|
25
|
+
|
|
26
|
+
@model_serializer(mode="wrap")
|
|
27
|
+
def serialize_model(self, handler):
|
|
28
|
+
optional_fields = set(["CancelOrdResponse"])
|
|
29
|
+
serialized = handler(self)
|
|
30
|
+
m = {}
|
|
31
|
+
|
|
32
|
+
for n, f in type(self).model_fields.items():
|
|
33
|
+
k = f.alias or n
|
|
34
|
+
val = serialized.get(k, serialized.get(n))
|
|
35
|
+
|
|
36
|
+
if val != UNSET_SENTINEL:
|
|
37
|
+
if val is not None or k not in optional_fields:
|
|
38
|
+
m[k] = val
|
|
39
|
+
|
|
40
|
+
return m
|