Skip to content

Commit

Permalink
request를 retry하는 코드 제거 (#15)
Browse files Browse the repository at this point in the history
  • Loading branch information
mr-yoo committed May 5, 2021
1 parent 3968773 commit 8dc8efc
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 75 deletions.
4 changes: 2 additions & 2 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"cwd": "${fileDirname}",
"env": {"PYTHONPATH": "${workspaceFolder}:${env:PYTHONPATH}"}
// "cwd": "${fileDirname}",
"env": {"PYTHONPATH": "${workspaceRoot}"}
}
]
}
6 changes: 3 additions & 3 deletions pyupbit/exchange_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -368,7 +368,7 @@ def get_order(self, ticker_or_uuid, state='wait', kind='normal', contain_req=Fal
url = "https://api.upbit.com/v1/order"
data = {'uuid': ticker_or_uuid}
headers = self._request_headers(data)
result = _send_get_request(url, headers=headers, data=data)
result = _send_get_request(url, headers=headers, data=data)
else :

url = "https://api.upbit.com/v1/orders"
Expand Down Expand Up @@ -437,7 +437,7 @@ def withdraw_coin(self, currency, amount, address, secondary_address='None', tra
except Exception as x:
print(x.__class__.__name__)
return None

def withdraw_cash(self, amount: str, contain_req=False):
"""
현금 출금
Expand All @@ -457,7 +457,7 @@ def withdraw_cash(self, amount: str, contain_req=False):
except Exception as x:
print(x.__class__.__name__)
return None

def get_individual_withdraw_order(self, uuid: str, currency: str, contain_req=False):
"""
현금 출금
Expand Down
83 changes: 42 additions & 41 deletions pyupbit/quotation_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@ def parse_remaining_req(data):
p = re.compile("group=([a-z]+); min=([0-9]+); sec=([0-9]+)")
m = p.search(data)
ret = {
'group': m.group(1),
'min': int(m.group(2)),
'group': m.group(1),
'min': int(m.group(2)),
'sec': int(m.group(3))
}
return ret
return ret


def fetch_market(isDetails=False, limit_info=False):
Expand All @@ -36,7 +36,7 @@ def fetch_market(isDetails=False, limit_info=False):
limit_info (bool, optional): True: 요청 수 제한 정보 리턴, False: 요청 수 제한 정보 리턴 받지 않음. Defaults to False.
Returns:
list, (dict): 마켓 목록 리스트, 요청 제한 정보 딕셔너리
list, (dict): 마켓 목록 리스트, 요청 제한 정보 딕셔너리
"""
url = "https://api.upbit.com/v1/market/all"

Expand All @@ -51,11 +51,11 @@ def fetch_market(isDetails=False, limit_info=False):
limit = parse_remaining_req(remaining_req)
data = resp.json()
if limit_info:
return data, limit
return data, limit
else:
return data
else:
raise_error(resp.status_code)
raise_error(resp.status_code)


def get_tickers(fiat="ALL", limit_info=False):
Expand Down Expand Up @@ -147,7 +147,7 @@ def get_ohlcv(ticker="KRW-BTC", interval="day", count=200, to=None):

dfs = []
count = max(count, 1)
call_count = MAX_CALL_COUNT
call_count = MAX_CALL_COUNT
n_calls, remainder = divmod(count, MAX_CALL_COUNT)

for n_call in range(n_calls + 1):
Expand Down Expand Up @@ -242,49 +242,49 @@ def get_orderbook(tickers="KRW-BTC"):


if __name__ == "__main__":
try:
for i in range(20):
market_all, limit = fetch_market(isDetails=True, limit_info=True)
except TooManyRequests as e:
print(e)
except UpbitError as e:
print(e)
# try:
# for i in range(20):
# market_all, limit = fetch_market(isDetails=True, limit_info=True)
# except TooManyRequests as e:
# print(e)
# except UpbitError as e:
# print(e)


# 모든 티커 목록 조회
#all_tickers = get_tickers()
#print(all_tickers)
all_tickers = get_tickers()
print(all_tickers)

# 특정 시장의 티커 목록 조회
#krw_tickers = get_tickers(fiat="KRW")
#print(krw_tickers, len(krw_tickers))
# krw_tickers = get_tickers(fiat="KRW")
# print(krw_tickers, len(krw_tickers))

#btc_tickers = get_tickers(fiat="BTC")
#print(btc_tickers, len(btc_tickers))
# print(btc_tickers, len(btc_tickers))

#usdt_tickers = get_tickers(fiat="USDT")
#print(usdt_tickers, len(usdt_tickers))
# print(usdt_tickers, len(usdt_tickers))

# 요청 수 제한 얻기
#all_tickers, limit_info = get_tickers(limit_info=True)
#print(limit_info)
# print(limit_info)

# print(get_tickers(fiat="KRW"))
# print(get_tickers(fiat="BTC"))
# print(get_tickers(fiat="USDT"))

#------------------------------------------------------
#print(get_ohlcv("KRW-BTC"))
#print(get_ohlcv("KRW-BTC", interval="day", count=5))
#print(get_ohlcv("KRW-BTC", interval="day", to="2020-01-01 00:00:00"))
# print(get_ohlcv("KRW-BTC"))
# print(get_ohlcv("KRW-BTC", interval="day", count=5))
# print(get_ohlcv("KRW-BTC", interval="day", to="2020-01-01 00:00:00"))

#to = datetime.datetime.strptime("2020-01-01", "%Y-%m-%d")
#df = get_ohlcv(ticker="KRW-BTC", interval="day", to=to)
#print(df)
# to = datetime.datetime.strptime("2020-01-01", "%Y-%m-%d")
# df = get_ohlcv(ticker="KRW-BTC", interval="day", to=to)
# print(df)

# string Test
#df = get_ohlcv("KRW-BTC", interval="minute1", to="2018-08-25 12:00:00")
#print(df)
# df = get_ohlcv("KRW-BTC", interval="minute1", to="2018-08-25 12:00:00")
# print(df)

# time stamp Test
# df = get_ohlcv("KRW-BTC", interval="minute1")
Expand All @@ -297,13 +297,14 @@ def get_orderbook(tickers="KRW-BTC"):
# print(get_ohlcv("KRW-BTC", interval="minute3"))
# print(get_ohlcv("KRW-BTC", interval="minute5"))
# print(get_ohlcv("KRW-BTC", interval="minute10"))
#print(get_ohlcv("KRW-BTC", interval="minute15"))
#print(get_ohlcv("KRW-BTC", interval="minute30"))
#print(get_ohlcv("KRW-BTC", interval="minute60"))
#print(get_ohlcv("KRW-BTC", interval="minute240"))
#print(get_ohlcv("KRW-BTC", interval="week"))
#print(get_daily_ohlcv_from_base("KRW-BTC", base=9))
#print(get_ohlcv("KRW-BTC", interval="day", count=5))
# print(get_ohlcv("KRW-BTC", interval="minute15"))
# print(get_ohlcv("KRW-BTC", interval="minute30"))
# print(get_ohlcv("KRW-BTC", interval="minute60"))
# print(get_ohlcv("KRW-BTC", interval="minute240"))
# print(get_ohlcv("KRW-BTC", interval="week"))
# print(get_daily_ohlcv_from_base("KRW-BTC", base=9))
# print(get_ohlcv("KRW-BTC", interval="day", count=5))


# krw_tickers = get_tickers(fiat="KRW")
# print(len(krw_tickers))
Expand All @@ -314,12 +315,12 @@ def get_orderbook(tickers="KRW-BTC"):
# prices1 = get_current_price(krw_tickers1)
# prices2 = get_current_price(krw_tickers2)

#print(prices1)
# print(prices1)
# print(prices2)


#print(get_current_price("KRW-BTC"))
#print(get_current_price(["KRW-BTC", "KRW-XRP"]))
# print(get_current_price("KRW-BTC"))
# print(get_current_price(["KRW-BTC", "KRW-XRP"]))

#print(get_orderbook(tickers=["KRW-BTC"]))
#print(get_orderbook(tickers=["KRW-BTC", "KRW-XRP"]))
# print(get_orderbook(tickers=["KRW-BTC"]))
# print(get_orderbook(tickers=["KRW-BTC", "KRW-XRP"]))
33 changes: 4 additions & 29 deletions pyupbit/request_api.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
import re

import requests
from requests.adapters import HTTPAdapter
from urllib3.util.retry import Retry

getframe_expr = 'sys._getframe({}).f_code.co_name'

Expand All @@ -21,28 +18,6 @@ def _parse_remaining_req(remaining_req):
return None, None, None


def requests_retry_session(retries=5, backoff_factor=0.2, status_forcelist=(500, 502, 504), session=None):
"""
:param retries:
:param backoff_factor:
:param status_forcelist:
:param session:
:return:
"""
s = session or requests.Session()
retry = Retry(
total=retries,
read=retries,
connect=retries,
backoff_factor=backoff_factor,
status_forcelist=status_forcelist)
adapter = HTTPAdapter(max_retries=retry)
s.mount('http://', adapter)
s.mount('https://', adapter)
return s


def _call_public_api(url, **kwargs):
"""
Expand All @@ -51,7 +26,7 @@ def _call_public_api(url, **kwargs):
:return:
"""
try:
resp = requests_retry_session().get(url, params=kwargs)
resp = requests.get(url, params=kwargs)
remaining_req_dict = {}
remaining_req = resp.headers.get('Remaining-Req')
if remaining_req is not None:
Expand All @@ -75,7 +50,7 @@ def _send_post_request(url, headers=None, data=None):
:return:
"""
try:
resp = requests_retry_session().post(url, headers=headers, data=data)
resp = requests.post(url, headers=headers, data=data)
remaining_req_dict = {}
remaining_req = resp.headers.get('Remaining-Req')
if remaining_req is not None:
Expand All @@ -99,7 +74,7 @@ def _send_get_request(url, headers=None, data=None):
:return:
"""
try:
resp = requests_retry_session().get(url, headers=headers, data=data)
resp = requests.get(url, headers=headers, data=data)
remaining_req_dict = {}
remaining_req = resp.headers.get('Remaining-Req')
if remaining_req is not None:
Expand All @@ -124,7 +99,7 @@ def _send_delete_request(url, headers=None, data=None):
:return:
"""
try:
resp = requests_retry_session().delete(url, headers=headers, data=data)
resp = requests.delete(url, headers=headers, data=data)
remaining_req_dict = {}
remaining_req = resp.headers.get('Remaining-Req')
if remaining_req is not None:
Expand Down

0 comments on commit 8dc8efc

Please sign in to comment.