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,242 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: bb00be214710
|
|
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 RatingsAccuracyTypedDict(TypedDict):
|
|
17
|
+
r"""Analyst accuracy metrics. Fields use snake_case; some fields may be absent when empty."""
|
|
18
|
+
|
|
19
|
+
avg_return_1m: NotRequired[Nullable[float]]
|
|
20
|
+
r"""Average return of the analyst's ratings over a 1 month horizon."""
|
|
21
|
+
avg_return_1y: NotRequired[Nullable[float]]
|
|
22
|
+
r"""Average return of the analyst's ratings over a 1 year horizon."""
|
|
23
|
+
avg_return_2y: NotRequired[Nullable[float]]
|
|
24
|
+
r"""Average return of the analyst's ratings over a 2 years horizon."""
|
|
25
|
+
avg_return_3m: NotRequired[Nullable[float]]
|
|
26
|
+
r"""Average return of the analyst's ratings over a 3 months horizon."""
|
|
27
|
+
avg_return_3y: NotRequired[Nullable[float]]
|
|
28
|
+
r"""Average return of the analyst's ratings over a 3 years horizon."""
|
|
29
|
+
avg_return_9m: NotRequired[Nullable[float]]
|
|
30
|
+
r"""Average return of the analyst's ratings over a 9 months horizon."""
|
|
31
|
+
gain_count_1m: NotRequired[Nullable[int]]
|
|
32
|
+
r"""Number of the analyst's ratings that gained over a 1 month horizon."""
|
|
33
|
+
gain_count_1y: NotRequired[Nullable[int]]
|
|
34
|
+
r"""Number of the analyst's ratings that gained over a 1 year horizon."""
|
|
35
|
+
gain_count_2y: NotRequired[Nullable[int]]
|
|
36
|
+
r"""Number of the analyst's ratings that gained over a 2 years horizon."""
|
|
37
|
+
gain_count_3m: NotRequired[Nullable[int]]
|
|
38
|
+
r"""Number of the analyst's ratings that gained over a 3 months horizon."""
|
|
39
|
+
gain_count_3y: NotRequired[Nullable[int]]
|
|
40
|
+
r"""Number of the analyst's ratings that gained over a 3 years horizon."""
|
|
41
|
+
gain_count_9m: NotRequired[Nullable[int]]
|
|
42
|
+
r"""Number of the analyst's ratings that gained over a 9 months horizon."""
|
|
43
|
+
loss_count_1m: NotRequired[Nullable[int]]
|
|
44
|
+
r"""Number of the analyst's ratings that lost over a 1 month horizon."""
|
|
45
|
+
loss_count_1y: NotRequired[Nullable[int]]
|
|
46
|
+
r"""Number of the analyst's ratings that lost over a 1 year horizon."""
|
|
47
|
+
loss_count_2y: NotRequired[Nullable[int]]
|
|
48
|
+
r"""Number of the analyst's ratings that lost over a 2 years horizon."""
|
|
49
|
+
loss_count_3m: NotRequired[Nullable[int]]
|
|
50
|
+
r"""Number of the analyst's ratings that lost over a 3 months horizon."""
|
|
51
|
+
loss_count_3y: NotRequired[Nullable[int]]
|
|
52
|
+
r"""Number of the analyst's ratings that lost over a 3 years horizon."""
|
|
53
|
+
loss_count_9m: NotRequired[Nullable[int]]
|
|
54
|
+
r"""Number of the analyst's ratings that lost over a 9 months horizon."""
|
|
55
|
+
smart_score: NotRequired[Nullable[float]]
|
|
56
|
+
r"""Provider smart score for the analyst's overall rating accuracy."""
|
|
57
|
+
std_dev_return_1m: NotRequired[Nullable[float]]
|
|
58
|
+
r"""Standard deviation of returns of the analyst's ratings over a 1 month horizon."""
|
|
59
|
+
std_dev_return_1y: NotRequired[Nullable[float]]
|
|
60
|
+
r"""Standard deviation of returns of the analyst's ratings over a 1 year horizon."""
|
|
61
|
+
std_dev_return_2y: NotRequired[Nullable[float]]
|
|
62
|
+
r"""Standard deviation of returns of the analyst's ratings over a 2 years horizon."""
|
|
63
|
+
std_dev_return_3m: NotRequired[Nullable[float]]
|
|
64
|
+
r"""Standard deviation of returns of the analyst's ratings over a 3 months horizon."""
|
|
65
|
+
std_dev_return_3y: NotRequired[Nullable[float]]
|
|
66
|
+
r"""Standard deviation of returns of the analyst's ratings over a 3 years horizon."""
|
|
67
|
+
std_dev_return_9m: NotRequired[Nullable[float]]
|
|
68
|
+
r"""Standard deviation of returns of the analyst's ratings over a 9 months horizon."""
|
|
69
|
+
success_rate: NotRequired[Nullable[float]]
|
|
70
|
+
r"""Overall rate of successful ratings for the analyst."""
|
|
71
|
+
total_ratings: NotRequired[Nullable[int]]
|
|
72
|
+
r"""Total number of ratings used to compute the accuracy metrics."""
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
class RatingsAccuracy(BaseModel):
|
|
76
|
+
r"""Analyst accuracy metrics. Fields use snake_case; some fields may be absent when empty."""
|
|
77
|
+
|
|
78
|
+
avg_return_1m: OptionalNullable[float] = UNSET
|
|
79
|
+
r"""Average return of the analyst's ratings over a 1 month horizon."""
|
|
80
|
+
|
|
81
|
+
avg_return_1y: OptionalNullable[float] = UNSET
|
|
82
|
+
r"""Average return of the analyst's ratings over a 1 year horizon."""
|
|
83
|
+
|
|
84
|
+
avg_return_2y: OptionalNullable[float] = UNSET
|
|
85
|
+
r"""Average return of the analyst's ratings over a 2 years horizon."""
|
|
86
|
+
|
|
87
|
+
avg_return_3m: OptionalNullable[float] = UNSET
|
|
88
|
+
r"""Average return of the analyst's ratings over a 3 months horizon."""
|
|
89
|
+
|
|
90
|
+
avg_return_3y: OptionalNullable[float] = UNSET
|
|
91
|
+
r"""Average return of the analyst's ratings over a 3 years horizon."""
|
|
92
|
+
|
|
93
|
+
avg_return_9m: OptionalNullable[float] = UNSET
|
|
94
|
+
r"""Average return of the analyst's ratings over a 9 months horizon."""
|
|
95
|
+
|
|
96
|
+
gain_count_1m: OptionalNullable[int] = UNSET
|
|
97
|
+
r"""Number of the analyst's ratings that gained over a 1 month horizon."""
|
|
98
|
+
|
|
99
|
+
gain_count_1y: OptionalNullable[int] = UNSET
|
|
100
|
+
r"""Number of the analyst's ratings that gained over a 1 year horizon."""
|
|
101
|
+
|
|
102
|
+
gain_count_2y: OptionalNullable[int] = UNSET
|
|
103
|
+
r"""Number of the analyst's ratings that gained over a 2 years horizon."""
|
|
104
|
+
|
|
105
|
+
gain_count_3m: OptionalNullable[int] = UNSET
|
|
106
|
+
r"""Number of the analyst's ratings that gained over a 3 months horizon."""
|
|
107
|
+
|
|
108
|
+
gain_count_3y: OptionalNullable[int] = UNSET
|
|
109
|
+
r"""Number of the analyst's ratings that gained over a 3 years horizon."""
|
|
110
|
+
|
|
111
|
+
gain_count_9m: OptionalNullable[int] = UNSET
|
|
112
|
+
r"""Number of the analyst's ratings that gained over a 9 months horizon."""
|
|
113
|
+
|
|
114
|
+
loss_count_1m: OptionalNullable[int] = UNSET
|
|
115
|
+
r"""Number of the analyst's ratings that lost over a 1 month horizon."""
|
|
116
|
+
|
|
117
|
+
loss_count_1y: OptionalNullable[int] = UNSET
|
|
118
|
+
r"""Number of the analyst's ratings that lost over a 1 year horizon."""
|
|
119
|
+
|
|
120
|
+
loss_count_2y: OptionalNullable[int] = UNSET
|
|
121
|
+
r"""Number of the analyst's ratings that lost over a 2 years horizon."""
|
|
122
|
+
|
|
123
|
+
loss_count_3m: OptionalNullable[int] = UNSET
|
|
124
|
+
r"""Number of the analyst's ratings that lost over a 3 months horizon."""
|
|
125
|
+
|
|
126
|
+
loss_count_3y: OptionalNullable[int] = UNSET
|
|
127
|
+
r"""Number of the analyst's ratings that lost over a 3 years horizon."""
|
|
128
|
+
|
|
129
|
+
loss_count_9m: OptionalNullable[int] = UNSET
|
|
130
|
+
r"""Number of the analyst's ratings that lost over a 9 months horizon."""
|
|
131
|
+
|
|
132
|
+
smart_score: OptionalNullable[float] = UNSET
|
|
133
|
+
r"""Provider smart score for the analyst's overall rating accuracy."""
|
|
134
|
+
|
|
135
|
+
std_dev_return_1m: OptionalNullable[float] = UNSET
|
|
136
|
+
r"""Standard deviation of returns of the analyst's ratings over a 1 month horizon."""
|
|
137
|
+
|
|
138
|
+
std_dev_return_1y: OptionalNullable[float] = UNSET
|
|
139
|
+
r"""Standard deviation of returns of the analyst's ratings over a 1 year horizon."""
|
|
140
|
+
|
|
141
|
+
std_dev_return_2y: OptionalNullable[float] = UNSET
|
|
142
|
+
r"""Standard deviation of returns of the analyst's ratings over a 2 years horizon."""
|
|
143
|
+
|
|
144
|
+
std_dev_return_3m: OptionalNullable[float] = UNSET
|
|
145
|
+
r"""Standard deviation of returns of the analyst's ratings over a 3 months horizon."""
|
|
146
|
+
|
|
147
|
+
std_dev_return_3y: OptionalNullable[float] = UNSET
|
|
148
|
+
r"""Standard deviation of returns of the analyst's ratings over a 3 years horizon."""
|
|
149
|
+
|
|
150
|
+
std_dev_return_9m: OptionalNullable[float] = UNSET
|
|
151
|
+
r"""Standard deviation of returns of the analyst's ratings over a 9 months horizon."""
|
|
152
|
+
|
|
153
|
+
success_rate: OptionalNullable[float] = UNSET
|
|
154
|
+
r"""Overall rate of successful ratings for the analyst."""
|
|
155
|
+
|
|
156
|
+
total_ratings: OptionalNullable[int] = UNSET
|
|
157
|
+
r"""Total number of ratings used to compute the accuracy metrics."""
|
|
158
|
+
|
|
159
|
+
@model_serializer(mode="wrap")
|
|
160
|
+
def serialize_model(self, handler):
|
|
161
|
+
optional_fields = set(
|
|
162
|
+
[
|
|
163
|
+
"avg_return_1m",
|
|
164
|
+
"avg_return_1y",
|
|
165
|
+
"avg_return_2y",
|
|
166
|
+
"avg_return_3m",
|
|
167
|
+
"avg_return_3y",
|
|
168
|
+
"avg_return_9m",
|
|
169
|
+
"gain_count_1m",
|
|
170
|
+
"gain_count_1y",
|
|
171
|
+
"gain_count_2y",
|
|
172
|
+
"gain_count_3m",
|
|
173
|
+
"gain_count_3y",
|
|
174
|
+
"gain_count_9m",
|
|
175
|
+
"loss_count_1m",
|
|
176
|
+
"loss_count_1y",
|
|
177
|
+
"loss_count_2y",
|
|
178
|
+
"loss_count_3m",
|
|
179
|
+
"loss_count_3y",
|
|
180
|
+
"loss_count_9m",
|
|
181
|
+
"smart_score",
|
|
182
|
+
"std_dev_return_1m",
|
|
183
|
+
"std_dev_return_1y",
|
|
184
|
+
"std_dev_return_2y",
|
|
185
|
+
"std_dev_return_3m",
|
|
186
|
+
"std_dev_return_3y",
|
|
187
|
+
"std_dev_return_9m",
|
|
188
|
+
"success_rate",
|
|
189
|
+
"total_ratings",
|
|
190
|
+
]
|
|
191
|
+
)
|
|
192
|
+
nullable_fields = set(
|
|
193
|
+
[
|
|
194
|
+
"avg_return_1m",
|
|
195
|
+
"avg_return_1y",
|
|
196
|
+
"avg_return_2y",
|
|
197
|
+
"avg_return_3m",
|
|
198
|
+
"avg_return_3y",
|
|
199
|
+
"avg_return_9m",
|
|
200
|
+
"gain_count_1m",
|
|
201
|
+
"gain_count_1y",
|
|
202
|
+
"gain_count_2y",
|
|
203
|
+
"gain_count_3m",
|
|
204
|
+
"gain_count_3y",
|
|
205
|
+
"gain_count_9m",
|
|
206
|
+
"loss_count_1m",
|
|
207
|
+
"loss_count_1y",
|
|
208
|
+
"loss_count_2y",
|
|
209
|
+
"loss_count_3m",
|
|
210
|
+
"loss_count_3y",
|
|
211
|
+
"loss_count_9m",
|
|
212
|
+
"smart_score",
|
|
213
|
+
"std_dev_return_1m",
|
|
214
|
+
"std_dev_return_1y",
|
|
215
|
+
"std_dev_return_2y",
|
|
216
|
+
"std_dev_return_3m",
|
|
217
|
+
"std_dev_return_3y",
|
|
218
|
+
"std_dev_return_9m",
|
|
219
|
+
"success_rate",
|
|
220
|
+
"total_ratings",
|
|
221
|
+
]
|
|
222
|
+
)
|
|
223
|
+
serialized = handler(self)
|
|
224
|
+
m = {}
|
|
225
|
+
|
|
226
|
+
for n, f in type(self).model_fields.items():
|
|
227
|
+
k = f.alias or n
|
|
228
|
+
val = serialized.get(k, serialized.get(n))
|
|
229
|
+
is_nullable_and_explicitly_set = (
|
|
230
|
+
k in nullable_fields
|
|
231
|
+
and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
|
|
232
|
+
)
|
|
233
|
+
|
|
234
|
+
if val != UNSET_SENTINEL:
|
|
235
|
+
if (
|
|
236
|
+
val is not None
|
|
237
|
+
or k not in optional_fields
|
|
238
|
+
or is_nullable_and_explicitly_set
|
|
239
|
+
):
|
|
240
|
+
m[k] = val
|
|
241
|
+
|
|
242
|
+
return m
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: d81d7c0ef2cb
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .watchlistresponse import WatchlistResponse, WatchlistResponseTypedDict
|
|
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 ReplaceConfigWatchlistsResponseTypedDict(TypedDict):
|
|
15
|
+
http_meta: HTTPMetadataTypedDict
|
|
16
|
+
watchlist_response: NotRequired[WatchlistResponseTypedDict]
|
|
17
|
+
r"""The full, resulting set of watchlists after the replace, in request order. Sending an empty array resets the user to a single new \"Default\" watchlist with no symbols."""
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class ReplaceConfigWatchlistsResponse(BaseModel):
|
|
21
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
22
|
+
|
|
23
|
+
watchlist_response: Optional[WatchlistResponse] = None
|
|
24
|
+
r"""The full, resulting set of watchlists after the replace, in request order. Sending an empty array resets the user to a single new \"Default\" watchlist with no symbols."""
|
|
25
|
+
|
|
26
|
+
@model_serializer(mode="wrap")
|
|
27
|
+
def serialize_model(self, handler):
|
|
28
|
+
optional_fields = set(["WatchlistResponse"])
|
|
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
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: db287c1a339f
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
|
|
6
|
+
from .replaceordresponse import ReplaceOrdResponse, ReplaceOrdResponseTypedDict
|
|
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 ReplaceOrderResponseTypedDict(TypedDict):
|
|
15
|
+
http_meta: HTTPMetadataTypedDict
|
|
16
|
+
replace_ord_response: NotRequired[ReplaceOrdResponseTypedDict]
|
|
17
|
+
r"""Replace request submitted successfully"""
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class ReplaceOrderResponse(BaseModel):
|
|
21
|
+
http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
|
|
22
|
+
|
|
23
|
+
replace_ord_response: Optional[ReplaceOrdResponse] = None
|
|
24
|
+
r"""Replace request submitted successfully"""
|
|
25
|
+
|
|
26
|
+
@model_serializer(mode="wrap")
|
|
27
|
+
def serialize_model(self, handler):
|
|
28
|
+
optional_fields = set(["ReplaceOrdResponse"])
|
|
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
|