Skip to content

Commit c3c6207

Browse files
authored
Merge pull request freqtrade#11368 from freqtrade/fix/nan_metadata
Allow NAN in Freqai datadrawer metadata
2 parents 8a5ff4e + 2f83f07 commit c3c6207

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

freqtrade/freqai/data_drawer.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333
TRAINDF = "trained_df"
3434
METADATA = "metadata"
3535

36+
METADATA_NUMBER_MODE = rapidjson.NM_NATIVE | rapidjson.NM_NAN
37+
3638

3739
class pair_info(TypedDict):
3840
model_filename: str
@@ -495,7 +497,7 @@ def save_metadata(self, dk: FreqaiDataKitchen) -> None:
495497
dk.data["label_list"] = dk.label_list
496498

497499
with (save_path / f"{dk.model_filename}_{METADATA}.json").open("w") as fp:
498-
rapidjson.dump(dk.data, fp, default=self.np_encoder, number_mode=rapidjson.NM_NATIVE)
500+
rapidjson.dump(dk.data, fp, default=self.np_encoder, number_mode=METADATA_NUMBER_MODE)
499501

500502
return
501503

@@ -526,7 +528,7 @@ def save_data(self, model: Any, coin: str, dk: FreqaiDataKitchen) -> None:
526528
dk.data["label_list"] = dk.label_list
527529
# store the metadata
528530
with (save_path / f"{dk.model_filename}_{METADATA}.json").open("w") as fp:
529-
rapidjson.dump(dk.data, fp, default=self.np_encoder, number_mode=rapidjson.NM_NATIVE)
531+
rapidjson.dump(dk.data, fp, default=self.np_encoder, number_mode=METADATA_NUMBER_MODE)
530532

531533
# save the pipelines to pickle files
532534
with (save_path / f"{dk.model_filename}_{FEATURE_PIPELINE}.pkl").open("wb") as fp:
@@ -563,7 +565,7 @@ def load_metadata(self, dk: FreqaiDataKitchen) -> None:
563565
presaved backtesting (prediction file loading).
564566
"""
565567
with (dk.data_path / f"{dk.model_filename}_{METADATA}.json").open("r") as fp:
566-
dk.data = rapidjson.load(fp, number_mode=rapidjson.NM_NATIVE)
568+
dk.data = rapidjson.load(fp, number_mode=METADATA_NUMBER_MODE)
567569
dk.training_features_list = dk.data["training_features_list"]
568570
dk.label_list = dk.data["label_list"]
569571

@@ -587,7 +589,7 @@ def load_data(self, coin: str, dk: FreqaiDataKitchen) -> Any: # noqa: C901
587589
dk.label_pipeline = self.meta_data_dictionary[coin][LABEL_PIPELINE]
588590
else:
589591
with (dk.data_path / f"{dk.model_filename}_{METADATA}.json").open("r") as fp:
590-
dk.data = rapidjson.load(fp, number_mode=rapidjson.NM_NATIVE)
592+
dk.data = rapidjson.load(fp, number_mode=METADATA_NUMBER_MODE)
591593

592594
with (dk.data_path / f"{dk.model_filename}_{FEATURE_PIPELINE}.pkl").open("rb") as fp:
593595
dk.feature_pipeline = cloudpickle.load(fp)

0 commit comments

Comments
 (0)