Fix _abc_data pickle error in 3.7
This commit is contained in:
parent
e73331b9b6
commit
e3e79a55fa
@ -12,8 +12,18 @@ def import_strategy(strategy: IStrategy, config: dict) -> IStrategy:
|
|||||||
Imports given Strategy instance to global scope
|
Imports given Strategy instance to global scope
|
||||||
of freqtrade.strategy and returns an instance of it
|
of freqtrade.strategy and returns an instance of it
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Copy all attributes from base class and class
|
# Copy all attributes from base class and class
|
||||||
attr = deepcopy({**strategy.__class__.__dict__, **strategy.__dict__})
|
|
||||||
|
comb = {**strategy.__class__.__dict__, **strategy.__dict__}
|
||||||
|
|
||||||
|
# Delete '_abc_impl' from dict as deepcopy fails on 3.7 with
|
||||||
|
# `TypeError: can't pickle _abc_data objects``
|
||||||
|
# This will only apply to python 3.7
|
||||||
|
if '_abc_impl' in comb:
|
||||||
|
del comb['_abc_impl']
|
||||||
|
|
||||||
|
attr = deepcopy(comb)
|
||||||
# Adjust module name
|
# Adjust module name
|
||||||
attr['__module__'] = 'freqtrade.strategy'
|
attr['__module__'] = 'freqtrade.strategy'
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user