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,132 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: f4c301dbf4db
|
|
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 OptionTradesResponseResultTypedDict(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
|
+
participant_timestamp: NotRequired[int]
|
|
20
|
+
r"""Participant timestamp (nanoseconds)"""
|
|
21
|
+
price: NotRequired[float]
|
|
22
|
+
r"""Trade price"""
|
|
23
|
+
sip_timestamp: NotRequired[int]
|
|
24
|
+
r"""SIP timestamp (nanoseconds)"""
|
|
25
|
+
size: NotRequired[float]
|
|
26
|
+
r"""Trade size (contracts)"""
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class OptionTradesResponseResult(BaseModel):
|
|
30
|
+
conditions: Optional[List[int]] = None
|
|
31
|
+
r"""Trade conditions"""
|
|
32
|
+
|
|
33
|
+
correction: Optional[int] = None
|
|
34
|
+
r"""Correction indicator"""
|
|
35
|
+
|
|
36
|
+
exchange: Optional[int] = None
|
|
37
|
+
r"""Numeric exchange identifier supplied by the market data provider."""
|
|
38
|
+
|
|
39
|
+
participant_timestamp: Annotated[
|
|
40
|
+
Optional[int], pydantic.Field(alias="participantTimestamp")
|
|
41
|
+
] = None
|
|
42
|
+
r"""Participant timestamp (nanoseconds)"""
|
|
43
|
+
|
|
44
|
+
price: Optional[float] = None
|
|
45
|
+
r"""Trade price"""
|
|
46
|
+
|
|
47
|
+
sip_timestamp: Annotated[Optional[int], pydantic.Field(alias="sipTimestamp")] = None
|
|
48
|
+
r"""SIP timestamp (nanoseconds)"""
|
|
49
|
+
|
|
50
|
+
size: Optional[float] = None
|
|
51
|
+
r"""Trade size (contracts)"""
|
|
52
|
+
|
|
53
|
+
@model_serializer(mode="wrap")
|
|
54
|
+
def serialize_model(self, handler):
|
|
55
|
+
optional_fields = set(
|
|
56
|
+
[
|
|
57
|
+
"conditions",
|
|
58
|
+
"correction",
|
|
59
|
+
"exchange",
|
|
60
|
+
"participantTimestamp",
|
|
61
|
+
"price",
|
|
62
|
+
"sipTimestamp",
|
|
63
|
+
"size",
|
|
64
|
+
]
|
|
65
|
+
)
|
|
66
|
+
serialized = handler(self)
|
|
67
|
+
m = {}
|
|
68
|
+
|
|
69
|
+
for n, f in type(self).model_fields.items():
|
|
70
|
+
k = f.alias or n
|
|
71
|
+
val = serialized.get(k, serialized.get(n))
|
|
72
|
+
|
|
73
|
+
if val != UNSET_SENTINEL:
|
|
74
|
+
if val is not None or k not in optional_fields:
|
|
75
|
+
m[k] = val
|
|
76
|
+
|
|
77
|
+
return m
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
class OptionTradesResponseTypedDict(TypedDict):
|
|
81
|
+
r"""Paginated list of historical tick-level trades for an options contract."""
|
|
82
|
+
|
|
83
|
+
next_url: NotRequired[str]
|
|
84
|
+
r"""URL for next page of results"""
|
|
85
|
+
request_id: NotRequired[str]
|
|
86
|
+
r"""Unique request ID"""
|
|
87
|
+
results: NotRequired[List[OptionTradesResponseResultTypedDict]]
|
|
88
|
+
r"""Array of options trade objects"""
|
|
89
|
+
status: NotRequired[str]
|
|
90
|
+
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."""
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
class OptionTradesResponse(BaseModel):
|
|
94
|
+
r"""Paginated list of historical tick-level trades for an options contract."""
|
|
95
|
+
|
|
96
|
+
next_url: Annotated[Optional[str], pydantic.Field(alias="nextUrl")] = None
|
|
97
|
+
r"""URL for next page of results"""
|
|
98
|
+
|
|
99
|
+
request_id: Annotated[Optional[str], pydantic.Field(alias="requestId")] = None
|
|
100
|
+
r"""Unique request ID"""
|
|
101
|
+
|
|
102
|
+
results: Optional[List[OptionTradesResponseResult]] = None
|
|
103
|
+
r"""Array of options trade objects"""
|
|
104
|
+
|
|
105
|
+
status: Optional[str] = None
|
|
106
|
+
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."""
|
|
107
|
+
|
|
108
|
+
@model_serializer(mode="wrap")
|
|
109
|
+
def serialize_model(self, handler):
|
|
110
|
+
optional_fields = set(["nextUrl", "requestId", "results", "status"])
|
|
111
|
+
serialized = handler(self)
|
|
112
|
+
m = {}
|
|
113
|
+
|
|
114
|
+
for n, f in type(self).model_fields.items():
|
|
115
|
+
k = f.alias or n
|
|
116
|
+
val = serialized.get(k, serialized.get(n))
|
|
117
|
+
|
|
118
|
+
if val != UNSET_SENTINEL:
|
|
119
|
+
if val is not None or k not in optional_fields:
|
|
120
|
+
m[k] = val
|
|
121
|
+
|
|
122
|
+
return m
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
try:
|
|
126
|
+
OptionTradesResponseResult.model_rebuild()
|
|
127
|
+
except NameError:
|
|
128
|
+
pass
|
|
129
|
+
try:
|
|
130
|
+
OptionTradesResponse.model_rebuild()
|
|
131
|
+
except NameError:
|
|
132
|
+
pass
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: bd06a8335409
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from enum import Enum
|
|
6
|
+
from finance_dev import utils
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class OrderRequestTimeInForceEnum(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
10
|
+
r"""How long the order should stay alive before automatically cancelling. Pick one:
|
|
11
|
+
- `DAY` — Active until the end of today's regular trading session, then cancelled if not filled. The default choice for most orders.
|
|
12
|
+
- `GTC` — Good 'Til Cancelled. Stays open across multiple trading days until you cancel it (the broker may cap at 60–90 days).
|
|
13
|
+
- `IOC` — Immediate Or Cancel. Fill whatever you can right now; cancel the rest immediately. Useful when you want partial fills but no resting order.
|
|
14
|
+
- `FOK` — Fill Or Kill. Fill the entire order immediately, or cancel it entirely. No partial fills allowed.
|
|
15
|
+
- `EXTENDED_HOURS` — Active during pre-market and after-hours trading sessions in addition to regular hours.
|
|
16
|
+
- `AT_THE_OPENING` — Execute at the official market open price; if it can't fill at open, it's cancelled.
|
|
17
|
+
- `AT_THE_CLOSE` — Execute at the official market close price; if it can't fill at close, it's cancelled.
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
DAY = "DAY"
|
|
21
|
+
GTC = "GTC"
|
|
22
|
+
IOC = "IOC"
|
|
23
|
+
FOK = "FOK"
|
|
24
|
+
EXTENDED_HOURS = "EXTENDED_HOURS"
|
|
25
|
+
AT_THE_OPENING = "AT_THE_OPENING"
|
|
26
|
+
AT_THE_CLOSE = "AT_THE_CLOSE"
|
|
27
|
+
ATO = "ATO"
|
|
28
|
+
ATC = "ATC"
|
|
29
|
+
EXT = "EXT"
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 5a18309858ca
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from enum import Enum
|
|
6
|
+
from finance_dev import utils
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class OrderSideEnum(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
10
|
+
r"""Which direction to trade in. Pick one:
|
|
11
|
+
- `BUY` — buying shares or contracts (opens a long position or closes an existing short).
|
|
12
|
+
- `SELL` — selling shares or contracts you already hold (closes a long position).
|
|
13
|
+
- `SELL_SHORT` — selling shares you do not own (opens a short position). Subject to short-sale regulations.
|
|
14
|
+
- `BUY_TO_COVER` — buying shares to close an open short position.
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
BUY = "BUY"
|
|
18
|
+
SELL = "SELL"
|
|
19
|
+
SELL_SHORT = "SELL_SHORT"
|
|
20
|
+
BUY_TO_COVER = "BUY_TO_COVER"
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 92afaf43c525
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from enum import Enum
|
|
6
|
+
from finance_dev import utils
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class OrderTypeEnum(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
10
|
+
r"""How the order is priced. Pick one:
|
|
11
|
+
- `MARKET` — Execute immediately at the best available price. Fast and guaranteed to fill, but no price guarantee — the actual fill price can move during execution.
|
|
12
|
+
- `LIMIT` — Execute only at the limit `price` or better (lower for buys, higher for sells). Gives you price control, no execution guarantee. Requires the `price` field.
|
|
13
|
+
- `STOP` — Sits inactive until the market hits `stopPrice`, then converts to a market order. Common for stop-loss exits. Requires the `stopPrice` field.
|
|
14
|
+
- `STOP_LIMIT` — Sits inactive until the market hits `stopPrice`, then converts to a limit order at `price`. More control than `STOP`, but the limit may not fill. Requires both `stopPrice` and `price`.
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
MARKET = "MARKET"
|
|
18
|
+
LIMIT = "LIMIT"
|
|
19
|
+
STOP = "STOP"
|
|
20
|
+
STOP_LIMIT = "STOP_LIMIT"
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: e736ea529ce7
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .securitytypeenum import SecurityTypeEnum
|
|
6
|
+
from datetime import date
|
|
7
|
+
from enum import Enum
|
|
8
|
+
from finance_dev import models, utils
|
|
9
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
10
|
+
import pydantic
|
|
11
|
+
from pydantic import field_serializer, model_serializer
|
|
12
|
+
from typing import Optional
|
|
13
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class OrdLegPositionEffect(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
17
|
+
r"""Whether this leg opens or closes a position. Use `OPEN` for a new position and `CLOSE` when closing an existing position."""
|
|
18
|
+
|
|
19
|
+
O = "O"
|
|
20
|
+
C = "C"
|
|
21
|
+
OPEN = "OPEN"
|
|
22
|
+
CLOSE = "CLOSE"
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class OrdLegPutCall(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
26
|
+
r"""Option contract type. Use `CALL` for call options and `PUT` for put options."""
|
|
27
|
+
|
|
28
|
+
PUT = "PUT"
|
|
29
|
+
CALL = "CALL"
|
|
30
|
+
P = "P"
|
|
31
|
+
C = "C"
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class OrdLegSide(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
35
|
+
r"""Direction for this option leg. Use `BUY` when buying the leg and `SELL` when selling the leg."""
|
|
36
|
+
|
|
37
|
+
B = "B"
|
|
38
|
+
S = "S"
|
|
39
|
+
BUY = "BUY"
|
|
40
|
+
SELL = "SELL"
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
class OrdLegTypedDict(TypedDict):
|
|
44
|
+
r"""One option leg inside a single-leg or multi-leg order. Use this only for option orders; omit `legs` for normal stock orders."""
|
|
45
|
+
|
|
46
|
+
position_effect: OrdLegPositionEffect
|
|
47
|
+
r"""Whether this leg opens or closes a position. Use `OPEN` for a new position and `CLOSE` when closing an existing position."""
|
|
48
|
+
ratio_qty: str
|
|
49
|
+
r"""Leg ratio quantity as a decimal string. Use \"1\" for a standard one-to-one leg; use other ratios for spreads that require uneven leg sizing."""
|
|
50
|
+
security_type: SecurityTypeEnum
|
|
51
|
+
r"""What kind of instrument the order is for. Pick one:
|
|
52
|
+
- `CS` — Common Stock (equity / ETF).
|
|
53
|
+
- `OPT` — Option contract (call or put).
|
|
54
|
+
"""
|
|
55
|
+
side: OrdLegSide
|
|
56
|
+
r"""Direction for this option leg. Use `BUY` when buying the leg and `SELL` when selling the leg."""
|
|
57
|
+
cfi_code: NotRequired[str]
|
|
58
|
+
r"""Optional CFI code if your system uses ISO instrument classification. Most integrations can omit this unless their option workflow requires it."""
|
|
59
|
+
maturity: NotRequired[date]
|
|
60
|
+
r"""Option expiration date in YYYY-MM-DD format. Required for option legs when the contract is not fully identified elsewhere."""
|
|
61
|
+
put_call: NotRequired[OrdLegPutCall]
|
|
62
|
+
r"""Option contract type. Use `CALL` for call options and `PUT` for put options."""
|
|
63
|
+
strike_price: NotRequired[str]
|
|
64
|
+
r"""Option strike price as a decimal string. Required for option legs when the contract is not fully identified elsewhere."""
|
|
65
|
+
symbol: NotRequired[str]
|
|
66
|
+
r"""Underlying symbol for this option leg. Omit it when the leg uses the same underlying as the order-level symbol."""
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
class OrdLeg(BaseModel):
|
|
70
|
+
r"""One option leg inside a single-leg or multi-leg order. Use this only for option orders; omit `legs` for normal stock orders."""
|
|
71
|
+
|
|
72
|
+
position_effect: Annotated[
|
|
73
|
+
OrdLegPositionEffect, pydantic.Field(alias="positionEffect")
|
|
74
|
+
]
|
|
75
|
+
r"""Whether this leg opens or closes a position. Use `OPEN` for a new position and `CLOSE` when closing an existing position."""
|
|
76
|
+
|
|
77
|
+
ratio_qty: Annotated[str, pydantic.Field(alias="ratioQty")]
|
|
78
|
+
r"""Leg ratio quantity as a decimal string. Use \"1\" for a standard one-to-one leg; use other ratios for spreads that require uneven leg sizing."""
|
|
79
|
+
|
|
80
|
+
security_type: Annotated[SecurityTypeEnum, pydantic.Field(alias="securityType")]
|
|
81
|
+
r"""What kind of instrument the order is for. Pick one:
|
|
82
|
+
- `CS` — Common Stock (equity / ETF).
|
|
83
|
+
- `OPT` — Option contract (call or put).
|
|
84
|
+
"""
|
|
85
|
+
|
|
86
|
+
side: OrdLegSide
|
|
87
|
+
r"""Direction for this option leg. Use `BUY` when buying the leg and `SELL` when selling the leg."""
|
|
88
|
+
|
|
89
|
+
cfi_code: Annotated[Optional[str], pydantic.Field(alias="cfiCode")] = None
|
|
90
|
+
r"""Optional CFI code if your system uses ISO instrument classification. Most integrations can omit this unless their option workflow requires it."""
|
|
91
|
+
|
|
92
|
+
maturity: Optional[date] = None
|
|
93
|
+
r"""Option expiration date in YYYY-MM-DD format. Required for option legs when the contract is not fully identified elsewhere."""
|
|
94
|
+
|
|
95
|
+
put_call: Annotated[Optional[OrdLegPutCall], pydantic.Field(alias="putCall")] = None
|
|
96
|
+
r"""Option contract type. Use `CALL` for call options and `PUT` for put options."""
|
|
97
|
+
|
|
98
|
+
strike_price: Annotated[Optional[str], pydantic.Field(alias="strikePrice")] = None
|
|
99
|
+
r"""Option strike price as a decimal string. Required for option legs when the contract is not fully identified elsewhere."""
|
|
100
|
+
|
|
101
|
+
symbol: Optional[str] = None
|
|
102
|
+
r"""Underlying symbol for this option leg. Omit it when the leg uses the same underlying as the order-level symbol."""
|
|
103
|
+
|
|
104
|
+
@field_serializer("position_effect")
|
|
105
|
+
def serialize_position_effect(self, value):
|
|
106
|
+
if isinstance(value, str):
|
|
107
|
+
try:
|
|
108
|
+
return models.OrdLegPositionEffect(value)
|
|
109
|
+
except ValueError:
|
|
110
|
+
return value
|
|
111
|
+
return value
|
|
112
|
+
|
|
113
|
+
@field_serializer("put_call")
|
|
114
|
+
def serialize_put_call(self, value):
|
|
115
|
+
if isinstance(value, str):
|
|
116
|
+
try:
|
|
117
|
+
return models.OrdLegPutCall(value)
|
|
118
|
+
except ValueError:
|
|
119
|
+
return value
|
|
120
|
+
return value
|
|
121
|
+
|
|
122
|
+
@field_serializer("security_type")
|
|
123
|
+
def serialize_security_type(self, value):
|
|
124
|
+
if isinstance(value, str):
|
|
125
|
+
try:
|
|
126
|
+
return models.SecurityTypeEnum(value)
|
|
127
|
+
except ValueError:
|
|
128
|
+
return value
|
|
129
|
+
return value
|
|
130
|
+
|
|
131
|
+
@field_serializer("side")
|
|
132
|
+
def serialize_side(self, value):
|
|
133
|
+
if isinstance(value, str):
|
|
134
|
+
try:
|
|
135
|
+
return models.OrdLegSide(value)
|
|
136
|
+
except ValueError:
|
|
137
|
+
return value
|
|
138
|
+
return value
|
|
139
|
+
|
|
140
|
+
@model_serializer(mode="wrap")
|
|
141
|
+
def serialize_model(self, handler):
|
|
142
|
+
optional_fields = set(
|
|
143
|
+
["cfiCode", "maturity", "putCall", "strikePrice", "symbol"]
|
|
144
|
+
)
|
|
145
|
+
serialized = handler(self)
|
|
146
|
+
m = {}
|
|
147
|
+
|
|
148
|
+
for n, f in type(self).model_fields.items():
|
|
149
|
+
k = f.alias or n
|
|
150
|
+
val = serialized.get(k, serialized.get(n))
|
|
151
|
+
|
|
152
|
+
if val != UNSET_SENTINEL:
|
|
153
|
+
if val is not None or k not in optional_fields:
|
|
154
|
+
m[k] = val
|
|
155
|
+
|
|
156
|
+
return m
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
try:
|
|
160
|
+
OrdLeg.model_rebuild()
|
|
161
|
+
except NameError:
|
|
162
|
+
pass
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: c77c5abfae10
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .ordersideenum import OrderSideEnum
|
|
6
|
+
from datetime import datetime
|
|
7
|
+
from enum import Enum
|
|
8
|
+
from finance_dev import models, utils
|
|
9
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
10
|
+
import pydantic
|
|
11
|
+
from pydantic import field_serializer, model_serializer
|
|
12
|
+
from typing import Optional
|
|
13
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class OrdResponseStatus(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
17
|
+
r"""Current order lifecycle state, mirroring FIX Tag 39 (OrdStatus). Most common values you'll see:
|
|
18
|
+
- `PENDING_NEW` — broker has not yet acknowledged the order.
|
|
19
|
+
- `NEW` — order is live on the exchange (working, not yet executing).
|
|
20
|
+
- `PARTIALLY_FILLED` — some of `qty` has filled; check `cumQty` and `leavesQty`.
|
|
21
|
+
- `FILLED` — the entire order has executed.
|
|
22
|
+
- `PENDING_CANCEL` / `CANCELED` — cancel request in progress / completed.
|
|
23
|
+
- `PENDING_REPLACE` / `REPLACED` — replace request in progress / completed.
|
|
24
|
+
- `REJECTED` — broker refused the order; see `ordRejReason` and `text`.
|
|
25
|
+
- `EXPIRED` — order reached its time-in-force limit without filling.
|
|
26
|
+
- `STOPPED`, `SUSPENDED`, `DONE_FOR_DAY`, `CALCULATED`, `ACCEPTED_FOR_BID`, `SUPERSEDED` — additional FIX states; rare in normal flows.
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
NEW = "NEW"
|
|
30
|
+
PARTIALLY_FILLED = "PARTIALLY_FILLED"
|
|
31
|
+
FILLED = "FILLED"
|
|
32
|
+
DONE_FOR_DAY = "DONE_FOR_DAY"
|
|
33
|
+
CANCELED = "CANCELED"
|
|
34
|
+
REPLACED = "REPLACED"
|
|
35
|
+
PENDING_CANCEL = "PENDING_CANCEL"
|
|
36
|
+
STOPPED = "STOPPED"
|
|
37
|
+
REJECTED = "REJECTED"
|
|
38
|
+
SUSPENDED = "SUSPENDED"
|
|
39
|
+
PENDING_NEW = "PENDING_NEW"
|
|
40
|
+
CALCULATED = "CALCULATED"
|
|
41
|
+
EXPIRED = "EXPIRED"
|
|
42
|
+
ACCEPTED_FOR_BID = "ACCEPTED_FOR_BID"
|
|
43
|
+
PENDING_REPLACE = "PENDING_REPLACE"
|
|
44
|
+
SUPERSEDED = "SUPERSEDED"
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
class OrdResponseTypedDict(TypedDict):
|
|
48
|
+
r"""Response returned after submitting an order request. Treat it as acknowledgement and continue monitoring order status until final fill, cancel, or rejection."""
|
|
49
|
+
|
|
50
|
+
avg_price: NotRequired[str]
|
|
51
|
+
r"""Average execution price for filled quantity. This is 0 until fills occur."""
|
|
52
|
+
cl_ord_id: NotRequired[str]
|
|
53
|
+
r"""Client order ID assigned to this order. Store this value to look up, replace, or cancel the order later."""
|
|
54
|
+
cum_qty: NotRequired[str]
|
|
55
|
+
r"""Quantity already filled. Compare this with qty to understand partial fills."""
|
|
56
|
+
leaves_qty: NotRequired[str]
|
|
57
|
+
r"""Quantity still open and eligible to fill. Value becomes 0 when the order is fully filled or no longer active."""
|
|
58
|
+
ord_rej_reason: NotRequired[str]
|
|
59
|
+
r"""Reason the order was rejected, when available. Use this to explain what the user needs to fix."""
|
|
60
|
+
qty: NotRequired[str]
|
|
61
|
+
r"""Original order quantity as a decimal string."""
|
|
62
|
+
side: NotRequired[OrderSideEnum]
|
|
63
|
+
r"""Which direction to trade in. Pick one:
|
|
64
|
+
- `BUY` — buying shares or contracts (opens a long position or closes an existing short).
|
|
65
|
+
- `SELL` — selling shares or contracts you already hold (closes a long position).
|
|
66
|
+
- `SELL_SHORT` — selling shares you do not own (opens a short position). Subject to short-sale regulations.
|
|
67
|
+
- `BUY_TO_COVER` — buying shares to close an open short position.
|
|
68
|
+
"""
|
|
69
|
+
status: NotRequired[OrdResponseStatus]
|
|
70
|
+
r"""Current order lifecycle state, mirroring FIX Tag 39 (OrdStatus). Most common values you'll see:
|
|
71
|
+
- `PENDING_NEW` — broker has not yet acknowledged the order.
|
|
72
|
+
- `NEW` — order is live on the exchange (working, not yet executing).
|
|
73
|
+
- `PARTIALLY_FILLED` — some of `qty` has filled; check `cumQty` and `leavesQty`.
|
|
74
|
+
- `FILLED` — the entire order has executed.
|
|
75
|
+
- `PENDING_CANCEL` / `CANCELED` — cancel request in progress / completed.
|
|
76
|
+
- `PENDING_REPLACE` / `REPLACED` — replace request in progress / completed.
|
|
77
|
+
- `REJECTED` — broker refused the order; see `ordRejReason` and `text`.
|
|
78
|
+
- `EXPIRED` — order reached its time-in-force limit without filling.
|
|
79
|
+
- `STOPPED`, `SUSPENDED`, `DONE_FOR_DAY`, `CALCULATED`, `ACCEPTED_FOR_BID`, `SUPERSEDED` — additional FIX states; rare in normal flows.
|
|
80
|
+
"""
|
|
81
|
+
success: NotRequired[bool]
|
|
82
|
+
r"""Whether the order request was accepted by Aries for processing. This does not guarantee a final fill."""
|
|
83
|
+
symbol: NotRequired[str]
|
|
84
|
+
r"""Symbol submitted on the order."""
|
|
85
|
+
text: NotRequired[str]
|
|
86
|
+
r"""Broker or system message. Show this to users when it explains a status or warning."""
|
|
87
|
+
transact_time: NotRequired[datetime]
|
|
88
|
+
r"""Time Aries or the broker recorded the order transaction."""
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
class OrdResponse(BaseModel):
|
|
92
|
+
r"""Response returned after submitting an order request. Treat it as acknowledgement and continue monitoring order status until final fill, cancel, or rejection."""
|
|
93
|
+
|
|
94
|
+
avg_price: Annotated[Optional[str], pydantic.Field(alias="avgPrice")] = None
|
|
95
|
+
r"""Average execution price for filled quantity. This is 0 until fills occur."""
|
|
96
|
+
|
|
97
|
+
cl_ord_id: Annotated[Optional[str], pydantic.Field(alias="clOrdId")] = None
|
|
98
|
+
r"""Client order ID assigned to this order. Store this value to look up, replace, or cancel the order later."""
|
|
99
|
+
|
|
100
|
+
cum_qty: Annotated[Optional[str], pydantic.Field(alias="cumQty")] = None
|
|
101
|
+
r"""Quantity already filled. Compare this with qty to understand partial fills."""
|
|
102
|
+
|
|
103
|
+
leaves_qty: Annotated[Optional[str], pydantic.Field(alias="leavesQty")] = None
|
|
104
|
+
r"""Quantity still open and eligible to fill. Value becomes 0 when the order is fully filled or no longer active."""
|
|
105
|
+
|
|
106
|
+
ord_rej_reason: Annotated[Optional[str], pydantic.Field(alias="ordRejReason")] = (
|
|
107
|
+
None
|
|
108
|
+
)
|
|
109
|
+
r"""Reason the order was rejected, when available. Use this to explain what the user needs to fix."""
|
|
110
|
+
|
|
111
|
+
qty: Optional[str] = None
|
|
112
|
+
r"""Original order quantity as a decimal string."""
|
|
113
|
+
|
|
114
|
+
side: Optional[OrderSideEnum] = None
|
|
115
|
+
r"""Which direction to trade in. Pick one:
|
|
116
|
+
- `BUY` — buying shares or contracts (opens a long position or closes an existing short).
|
|
117
|
+
- `SELL` — selling shares or contracts you already hold (closes a long position).
|
|
118
|
+
- `SELL_SHORT` — selling shares you do not own (opens a short position). Subject to short-sale regulations.
|
|
119
|
+
- `BUY_TO_COVER` — buying shares to close an open short position.
|
|
120
|
+
"""
|
|
121
|
+
|
|
122
|
+
status: Optional[OrdResponseStatus] = None
|
|
123
|
+
r"""Current order lifecycle state, mirroring FIX Tag 39 (OrdStatus). Most common values you'll see:
|
|
124
|
+
- `PENDING_NEW` — broker has not yet acknowledged the order.
|
|
125
|
+
- `NEW` — order is live on the exchange (working, not yet executing).
|
|
126
|
+
- `PARTIALLY_FILLED` — some of `qty` has filled; check `cumQty` and `leavesQty`.
|
|
127
|
+
- `FILLED` — the entire order has executed.
|
|
128
|
+
- `PENDING_CANCEL` / `CANCELED` — cancel request in progress / completed.
|
|
129
|
+
- `PENDING_REPLACE` / `REPLACED` — replace request in progress / completed.
|
|
130
|
+
- `REJECTED` — broker refused the order; see `ordRejReason` and `text`.
|
|
131
|
+
- `EXPIRED` — order reached its time-in-force limit without filling.
|
|
132
|
+
- `STOPPED`, `SUSPENDED`, `DONE_FOR_DAY`, `CALCULATED`, `ACCEPTED_FOR_BID`, `SUPERSEDED` — additional FIX states; rare in normal flows.
|
|
133
|
+
"""
|
|
134
|
+
|
|
135
|
+
success: Optional[bool] = None
|
|
136
|
+
r"""Whether the order request was accepted by Aries for processing. This does not guarantee a final fill."""
|
|
137
|
+
|
|
138
|
+
symbol: Optional[str] = None
|
|
139
|
+
r"""Symbol submitted on the order."""
|
|
140
|
+
|
|
141
|
+
text: Optional[str] = None
|
|
142
|
+
r"""Broker or system message. Show this to users when it explains a status or warning."""
|
|
143
|
+
|
|
144
|
+
transact_time: Annotated[
|
|
145
|
+
Optional[datetime], pydantic.Field(alias="transactTime")
|
|
146
|
+
] = None
|
|
147
|
+
r"""Time Aries or the broker recorded the order transaction."""
|
|
148
|
+
|
|
149
|
+
@field_serializer("side")
|
|
150
|
+
def serialize_side(self, value):
|
|
151
|
+
if isinstance(value, str):
|
|
152
|
+
try:
|
|
153
|
+
return models.OrderSideEnum(value)
|
|
154
|
+
except ValueError:
|
|
155
|
+
return value
|
|
156
|
+
return value
|
|
157
|
+
|
|
158
|
+
@field_serializer("status")
|
|
159
|
+
def serialize_status(self, value):
|
|
160
|
+
if isinstance(value, str):
|
|
161
|
+
try:
|
|
162
|
+
return models.OrdResponseStatus(value)
|
|
163
|
+
except ValueError:
|
|
164
|
+
return value
|
|
165
|
+
return value
|
|
166
|
+
|
|
167
|
+
@model_serializer(mode="wrap")
|
|
168
|
+
def serialize_model(self, handler):
|
|
169
|
+
optional_fields = set(
|
|
170
|
+
[
|
|
171
|
+
"avgPrice",
|
|
172
|
+
"clOrdId",
|
|
173
|
+
"cumQty",
|
|
174
|
+
"leavesQty",
|
|
175
|
+
"ordRejReason",
|
|
176
|
+
"qty",
|
|
177
|
+
"side",
|
|
178
|
+
"status",
|
|
179
|
+
"success",
|
|
180
|
+
"symbol",
|
|
181
|
+
"text",
|
|
182
|
+
"transactTime",
|
|
183
|
+
]
|
|
184
|
+
)
|
|
185
|
+
serialized = handler(self)
|
|
186
|
+
m = {}
|
|
187
|
+
|
|
188
|
+
for n, f in type(self).model_fields.items():
|
|
189
|
+
k = f.alias or n
|
|
190
|
+
val = serialized.get(k, serialized.get(n))
|
|
191
|
+
|
|
192
|
+
if val != UNSET_SENTINEL:
|
|
193
|
+
if val is not None or k not in optional_fields:
|
|
194
|
+
m[k] = val
|
|
195
|
+
|
|
196
|
+
return m
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
try:
|
|
200
|
+
OrdResponse.model_rebuild()
|
|
201
|
+
except NameError:
|
|
202
|
+
pass
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
# @generated-id: 8b68203d0e8e
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
from .ownershiprecord import OwnershipRecord, OwnershipRecordTypedDict
|
|
6
|
+
from finance_dev.types import BaseModel, UNSET_SENTINEL
|
|
7
|
+
from pydantic import model_serializer
|
|
8
|
+
from typing import List, Optional
|
|
9
|
+
from typing_extensions import NotRequired, TypedDict
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class OwnershipDataResponseTypedDict(TypedDict):
|
|
13
|
+
r"""Response containing institutional ownership records."""
|
|
14
|
+
|
|
15
|
+
data: NotRequired[List[OwnershipRecordTypedDict]]
|
|
16
|
+
r"""List of institutional ownership records"""
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class OwnershipDataResponse(BaseModel):
|
|
20
|
+
r"""Response containing institutional ownership records."""
|
|
21
|
+
|
|
22
|
+
data: Optional[List[OwnershipRecord]] = None
|
|
23
|
+
r"""List of institutional ownership records"""
|
|
24
|
+
|
|
25
|
+
@model_serializer(mode="wrap")
|
|
26
|
+
def serialize_model(self, handler):
|
|
27
|
+
optional_fields = set(["data"])
|
|
28
|
+
serialized = handler(self)
|
|
29
|
+
m = {}
|
|
30
|
+
|
|
31
|
+
for n, f in type(self).model_fields.items():
|
|
32
|
+
k = f.alias or n
|
|
33
|
+
val = serialized.get(k, serialized.get(n))
|
|
34
|
+
|
|
35
|
+
if val != UNSET_SENTINEL:
|
|
36
|
+
if val is not None or k not in optional_fields:
|
|
37
|
+
m[k] = val
|
|
38
|
+
|
|
39
|
+
return m
|