Learn preferences from multiple files. Args: files: List of (path, content) tuples Returns: Dictionary of preference -> list of detected values
(self, files: List[tuple])
| 326 | return detected |
| 327 | |
| 328 | def learn_from_files(self, files: List[tuple]) -> Dict[str, List[str]]: |
| 329 | """ |
| 330 | Learn preferences from multiple files. |
| 331 | |
| 332 | Args: |
| 333 | files: List of (path, content) tuples |
| 334 | |
| 335 | Returns: |
| 336 | Dictionary of preference -> list of detected values |
| 337 | """ |
| 338 | all_detected = defaultdict(list) |
| 339 | |
| 340 | for path, content in files: |
| 341 | detected = self.learn_from_file(path, content) |
| 342 | for key, value in detected.items(): |
| 343 | if value: |
| 344 | all_detected[key].append(value) |
| 345 | |
| 346 | # Aggregate results |
| 347 | for key, values in all_detected.items(): |
| 348 | if values: |
| 349 | # Use most common value |
| 350 | most_common = max(set(values), key=values.count) |
| 351 | self._update_preference(key, most_common, confidence=0.5) |
| 352 | |
| 353 | return dict(all_detected) |
| 354 | |
| 355 | def learn_from_message(self, message: str) -> Dict[str, str]: |
| 356 | """ |