Merge pull request #358 from ermakus/set_requests_default_timeout

Set timeout for bittrex only
This commit is contained in:
Samuel Husso 2018-01-11 08:51:21 +02:00 committed by GitHub
commit 3ac3ead2cf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 18 deletions

View File

@ -1,4 +1,5 @@
import logging import logging
import requests
from typing import Dict, List, Optional from typing import Dict, List, Optional
from bittrex.bittrex import Bittrex as _Bittrex from bittrex.bittrex import Bittrex as _Bittrex
@ -14,6 +15,20 @@ _API: _Bittrex = None
_API_V2: _Bittrex = None _API_V2: _Bittrex = None
_EXCHANGE_CONF: dict = {} _EXCHANGE_CONF: dict = {}
# API socket timeout
API_TIMEOUT = 60
def custom_requests(request_url, apisign):
"""
Set timeout for requests
"""
return requests.get(
request_url,
headers={"apisign": apisign},
timeout=API_TIMEOUT
).json()
class Bittrex(Exchange): class Bittrex(Exchange):
""" """
@ -32,12 +47,14 @@ class Bittrex(Exchange):
api_secret=_EXCHANGE_CONF['secret'], api_secret=_EXCHANGE_CONF['secret'],
calls_per_second=1, calls_per_second=1,
api_version=API_V1_1, api_version=API_V1_1,
dispatch=custom_requests
) )
_API_V2 = _Bittrex( _API_V2 = _Bittrex(
api_key=_EXCHANGE_CONF['key'], api_key=_EXCHANGE_CONF['key'],
api_secret=_EXCHANGE_CONF['secret'], api_secret=_EXCHANGE_CONF['secret'],
calls_per_second=1, calls_per_second=1,
api_version=API_V2_0, api_version=API_V2_0,
dispatch=custom_requests
) )
self.cached_ticker = {} self.cached_ticker = {}

View File

@ -10,7 +10,6 @@ from typing import Dict, List, Optional
import arrow import arrow
import requests import requests
from requests.adapters import TimeoutSauce
from cachetools import cached, TTLCache from cachetools import cached, TTLCache
from freqtrade import (DependencyException, OperationalException, __version__, from freqtrade import (DependencyException, OperationalException, __version__,
@ -25,23 +24,6 @@ logger = logging.getLogger('freqtrade')
_CONF = {} _CONF = {}
DEFAULT_TIMEOUT = 120
# Set requests default timeout (fix for #127)
class DefaultTimeout(TimeoutSauce):
def __init__(self, *args, **kwargs):
connect = kwargs.get('connect', DEFAULT_TIMEOUT)
read = kwargs.get('read', connect)
if connect is None:
connect = DEFAULT_TIMEOUT
if read is None:
read = connect
super(DefaultTimeout, self).__init__(connect=connect, read=read)
requests.adapters.TimeoutSauce = DefaultTimeout
def refresh_whitelist(whitelist: List[str]) -> List[str]: def refresh_whitelist(whitelist: List[str]) -> List[str]:
""" """