(self,
roots: str,
)
| 18 | """ |
| 19 | |
| 20 | def __init__(self, |
| 21 | roots: str, |
| 22 | ): |
| 23 | super().__init__() |
| 24 | self.roots = roots.split(',') |
| 25 | self.instances = [] |
| 26 | self.metadata = pd.DataFrame() |
| 27 | |
| 28 | self._stats = {} |
| 29 | for root in self.roots: |
| 30 | key = os.path.basename(root) |
| 31 | self._stats[key] = {} |
| 32 | metadata = pd.read_csv(os.path.join(root, 'metadata.csv')) |
| 33 | self._stats[key]['Total'] = len(metadata) |
| 34 | metadata, stats = self.filter_metadata(metadata) |
| 35 | self._stats[key].update(stats) |
| 36 | self.instances.extend([(root, sha256) for sha256 in metadata['sha256'].values]) |
| 37 | metadata.set_index('sha256', inplace=True) |
| 38 | self.metadata = pd.concat([self.metadata, metadata]) |
| 39 | |
| 40 | @abstractmethod |
| 41 | def filter_metadata(self, metadata: pd.DataFrame) -> Tuple[pd.DataFrame, Dict[str, int]]: |
no test coverage detected