From f179381b64ee3cb8b646f484b289ec39a09a14b2 Mon Sep 17 00:00:00 2001 From: fredfortier Date: Tue, 24 Oct 2017 23:41:37 -0400 Subject: [PATCH] Small python 3 fixes --- catalyst/exchange/exchange_algorithm.py | 1 + catalyst/exchange/exchange_utils.py | 8 ++++---- catalyst/exchange/poloniex/poloniex_api.py | 12 ++++++++++-- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/catalyst/exchange/exchange_algorithm.py b/catalyst/exchange/exchange_algorithm.py index a96f893c..6650fda2 100644 --- a/catalyst/exchange/exchange_algorithm.py +++ b/catalyst/exchange/exchange_algorithm.py @@ -556,6 +556,7 @@ class ExchangeTradingAlgorithmLive(ExchangeTradingAlgorithmBase): except Exception as e: log.warn('unable to calculate performance: {}'.format(e)) + # TODO: pickle does not seem to work in python 3 try: save_algo_object( algo_name=self.algo_namespace, diff --git a/catalyst/exchange/exchange_utils.py b/catalyst/exchange/exchange_utils.py index 05a17435..2e3982f0 100644 --- a/catalyst/exchange/exchange_utils.py +++ b/catalyst/exchange/exchange_utils.py @@ -1,7 +1,7 @@ import json import os import pickle -from six.moves.urllib.request import urlretrieve +from six.moves.urllib import request from datetime import date, datetime import pandas as pd @@ -33,7 +33,7 @@ def get_exchange_symbols_filename(exchange_name, environ=None): def download_exchange_symbols(exchange_name, environ=None): filename = get_exchange_symbols_filename(exchange_name) url = SYMBOLS_URL.format(exchange=exchange_name) - response = urlretrieve(url=url, filename=filename) + response = request.urlretrieve(url=url, filename=filename) return response @@ -154,8 +154,8 @@ def save_algo_df(algo_name, key, df, environ=None, rel_path=None): filename = os.path.join(folder, key + '.csv') - with open(filename, 'wb') as handle: - df.to_csv(handle) + with open(filename, 'wt') as handle: + df.to_csv(handle, encoding='UTF_8') def get_exchange_minute_writer_root(exchange_name, environ=None): diff --git a/catalyst/exchange/poloniex/poloniex_api.py b/catalyst/exchange/poloniex/poloniex_api.py index 158b5fa2..8bf6bb83 100644 --- a/catalyst/exchange/poloniex/poloniex_api.py +++ b/catalyst/exchange/poloniex/poloniex_api.py @@ -92,12 +92,20 @@ class Poloniex_api(object): post_data.encode('utf-8'), hashlib.sha512).hexdigest() headers = {'Sign': signature, 'Key': self.key} + + post_data = post_data.encode('utf-8') else: raise ValueError( - 'Method "' + method + '" not found in neither the Public API or Trading API endpoints') + 'Method "' + method + '" not found in neither the Public API ' + 'or Trading API endpoints' + ) self.ask_request() - req = urllib.request.Request(url, data=post_data, headers=headers) + req = urllib.request.Request( + url, + data=post_data, + headers=headers + ) return json.loads(urlopen(req).read()) def returnticker(self):