/ src / evidently / legacy / experimental / report_set.py
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