refactor(MarkMatcher): replace `from_item` with `from_markers` method

This commit is contained in:
lovetheguitar 2024-06-21 14:41:22 +02:00
parent 1e7eb20347
commit 6dd8ad60a4
1 changed files with 4 additions and 3 deletions

View File

@ -6,6 +6,7 @@ import collections
import dataclasses import dataclasses
from typing import AbstractSet from typing import AbstractSet
from typing import Collection from typing import Collection
from typing import Iterable
from typing import Optional from typing import Optional
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
@ -227,9 +228,9 @@ class MarkMatcher:
own_mark_name_mapping: dict[str, list[Mark]] own_mark_name_mapping: dict[str, list[Mark]]
@classmethod @classmethod
def from_item(cls, item: Item) -> MarkMatcher: def from_markers(cls, markers: Iterable[Mark]) -> MarkMatcher:
mark_name_mapping = collections.defaultdict(list) mark_name_mapping = collections.defaultdict(list)
for mark in item.iter_markers(): for mark in markers:
mark_name_mapping[mark.name].append(mark) mark_name_mapping[mark.name].append(mark)
return cls(mark_name_mapping) return cls(mark_name_mapping)
@ -256,7 +257,7 @@ def deselect_by_mark(items: list[Item], config: Config) -> None:
remaining: list[Item] = [] remaining: list[Item] = []
deselected: list[Item] = [] deselected: list[Item] = []
for item in items: for item in items:
if expr.evaluate(MarkMatcher.from_item(item)): if expr.evaluate(MarkMatcher.from_markers(item.iter_markers())):
remaining.append(item) remaining.append(item)
else: else:
deselected.append(item) deselected.append(item)