exportfilename can be a file or directory

This commit is contained in:
Matthias 2020-06-28 09:45:23 +02:00
parent 2ed808da1f
commit 7c5587aeaa
3 changed files with 15 additions and 7 deletions

View File

@ -199,7 +199,7 @@ class Configuration:
config['exportfilename'] = Path(config['exportfilename'])
else:
config['exportfilename'] = (config['user_data_dir']
/ 'backtest_results/backtest-result.json')
/ 'backtest_results')
def _process_optimize_options(self, config: Dict[str, Any]) -> None:

View File

@ -38,7 +38,8 @@ def get_latest_backtest_filename(directory: Union[Path, str]) -> str:
filename = directory / LAST_BT_RESULT_FN
if not filename.is_file():
raise ValueError(f"Directory '{directory}' does not seem to contain backtest statistics yet.")
raise ValueError(
f"Directory '{directory}' does not seem to contain backtest statistics yet.")
with filename.open() as file:
data = json_load(file)
@ -57,9 +58,11 @@ def load_backtest_stats(filename: Union[Path, str]) -> Dict[str, Any]:
"""
if isinstance(filename, str):
filename = Path(filename)
if filename.is_dir():
filename = get_latest_backtest_filename(filename)
if not filename.is_file():
raise ValueError(f"File {filename} does not exist.")
logger.info(f"Loading backtest result from {filename}")
with filename.open() as file:
data = json_load(file)

View File

@ -16,12 +16,17 @@ logger = logging.getLogger(__name__)
def store_backtest_stats(recordfilename: Path, stats: Dict[str, DataFrame]) -> None:
filename = Path.joinpath(recordfilename.parent,
f'{recordfilename.stem}-{datetime.now().isoformat()}'
if recordfilename.is_dir():
filename = recordfilename / \
f'backtest-result-{datetime.now().strftime("%Y-%m-%d_%H-%M-%S")}.json'
else:
filename = Path.joinpath(
recordfilename.parent,
f'{recordfilename.stem}-{datetime.now().strftime("%Y-%m-%d_%H-%M-%S")}'
).with_suffix(recordfilename.suffix)
file_dump_json(filename, stats)
latest_filename = Path.joinpath(recordfilename.parent, LAST_BT_RESULT_FN)
latest_filename = Path.joinpath(filename.parent, LAST_BT_RESULT_FN)
file_dump_json(latest_filename, {'latest_backtest': str(filename.name)})