report_set.py
1 import datetime 2 import os 3 from typing import Dict 4 from typing import Optional 5 6 from evidently._pydantic_compat import ValidationError 7 from evidently.legacy.suite.base_suite import Snapshot 8 from evidently.legacy.ui.type_aliases import SnapshotID 9 10 11 def load_snapshots( 12 path: str, 13 date_from: Optional[datetime.datetime] = None, 14 date_to: Optional[datetime.datetime] = None, 15 skip_errors: bool = False, 16 ) -> Dict[SnapshotID, Snapshot]: 17 result = {} 18 for file in os.listdir(path): 19 filepath = os.path.join(path, file) 20 try: 21 suite = Snapshot.load(filepath) 22 except ValidationError: 23 if skip_errors: 24 continue 25 raise 26 if date_from is not None and suite.timestamp < date_from: 27 continue 28 if date_to is not None and suite.timestamp > date_to: 29 continue 30 result[suite.id] = suite 31 return result