/ src / analysis / mesh_analysis / stacks / file_stack_analysis.py
file_stack_analysis.py
 1  # Python Imports
 2  import logging
 3  from typing import List
 4  
 5  from pydantic import BaseModel, ConfigDict
 6  
 7  # Project Imports
 8  from src.analysis.mesh_analysis.readers.file_reader import FileReader
 9  from src.analysis.utils import file_utils
10  
11  logger = logging.getLogger(__name__)
12  
13  
14  class FileStackAnalysis(BaseModel):
15      model_config = ConfigDict(arbitrary_types_allowed=True)
16      reader: FileReader
17  
18      def get_number_nodes(self, stateful_sets: List[str]) -> List[int]:
19          files = file_utils.get_files_from_folder_path(
20              self.reader._folder_path, extension="*.log"
21          ).ok_value
22  
23          return [
24              len(list(filter(lambda item: item.startswith(stateful_set_prefix), files)))
25              for stateful_set_prefix in stateful_sets
26          ]