@@ -96,6 +96,9 @@ def __init__(
9696 if api_key :
9797 self ._headers ["Authorization" ] = f"Bearer { api_key } "
9898
99+ def list_feeds (self ) -> List [str ]:
100+ return self ._request (f"{ self ._base_url } /api/feeds/" )
101+
99102 def load_markets (self ) -> Dict [str , Market ]:
100103 data = self ._get ("loadMarkets" , {})
101104 return {
@@ -172,13 +175,15 @@ def fetch_historical_prices(
172175 return [self ._to_ticker (r ) for r in data ]
173176
174177 def _get (self , method : str , params : Dict [str , Any ]) -> Any :
175- filtered = {k : v for k , v in params .items () if v is not None }
176- qs = urllib .parse .urlencode (filtered ) if filtered else ""
177178 url = f"{ self ._base_url } /api/feeds/{ self ._feed_name } /{ method } "
178- if qs :
179- url += f"?{ qs } "
179+ return self ._request (url , params )
180+
181+ def _request (self , url : str , params : Optional [Dict [str , Any ]] = None ) -> Any :
182+ filtered = {k : v for k , v in (params or {}).items () if v is not None }
183+ qs = urllib .parse .urlencode (filtered ) if filtered else ""
184+ request_url = f"{ url } ?{ qs } " if qs else url
180185
181- req = urllib .request .Request (url , headers = self ._headers )
186+ req = urllib .request .Request (request_url , headers = self ._headers )
182187 try :
183188 with urllib .request .urlopen (req , timeout = 30 ) as resp :
184189 body = json .loads (resp .read ())
0 commit comments