MCPcopy Index your code
hub / github.com/algorithmicsuperintelligence/openevolve / load

Method load

openevolve/database.py:639–707  ·  view source on GitHub ↗

Load the database from disk Args: path: Path to load from

(self, path: str)

Source from the content-addressed store, hash-verified

637 logger.info(f"Saved database with {len(self.programs)} programs to {save_path}")
638
639 def load(self, path: str) -> None:
640 """
641 Load the database from disk
642
643 Args:
644 path: Path to load from
645 """
646 if not os.path.exists(path):
647 logger.warning(f"Database path {path} does not exist, skipping load")
648 return
649
650 # Load metadata first
651 metadata_path = os.path.join(path, "metadata.json")
652 saved_islands = []
653 if os.path.exists(metadata_path):
654 with open(metadata_path, "r") as f:
655 metadata = json.load(f)
656
657 self.island_feature_maps = metadata.get(
658 "island_feature_maps", [{} for _ in range(self.config.num_islands)]
659 )
660 saved_islands = metadata.get("islands", [])
661 self.archive = set(metadata.get("archive", []))
662 self.best_program_id = metadata.get("best_program_id")
663 self.island_best_programs = metadata.get(
664 "island_best_programs", [None] * len(saved_islands)
665 )
666 self.last_iteration = metadata.get("last_iteration", 0)
667 self.current_island = metadata.get("current_island", 0)
668 self.island_generations = metadata.get("island_generations", [0] * len(saved_islands))
669 self.last_migration_generation = metadata.get("last_migration_generation", 0)
670
671 # Load feature_stats for MAP-Elites grid stability
672 self.feature_stats = self._deserialize_feature_stats(metadata.get("feature_stats", {}))
673
674 logger.info(f"Loaded database metadata with last_iteration={self.last_iteration}")
675 if self.feature_stats:
676 logger.info(f"Loaded feature_stats for {len(self.feature_stats)} dimensions")
677
678 # Load programs
679 programs_dir = os.path.join(path, "programs")
680 if os.path.exists(programs_dir):
681 for program_file in os.listdir(programs_dir):
682 if program_file.endswith(".json"):
683 program_path = os.path.join(programs_dir, program_file)
684 try:
685 with open(program_path, "r") as f:
686 program_data = json.load(f)
687
688 program = Program.from_dict(program_data)
689 self.programs[program.id] = program
690 except Exception as e:
691 logger.warning(f"Error loading program {program_file}: {str(e)}")
692
693 # Reconstruct island assignments from metadata
694 self._reconstruct_islands(saved_islands)
695
696 # Ensure island_generations list has correct length

Calls 5

_reconstruct_islandsMethod · 0.95
log_island_statusMethod · 0.95
getMethod · 0.80
from_dictMethod · 0.45