API Reference

Module url_matcher

class Patterns(include: List[str], exclude: List[str] | None = None, priority: int = 500)[source]
__init__(include: List[str], exclude: List[str] | None = None, priority: int = 500)[source]
all_includes_have_domain() bool[source]

Return true if all the include patterns have a domain

exclude: Tuple[str, ...]
get_domains() List[str][source]
get_includes_for(domain: str) List[str][source]
get_includes_without_domain() List[str][source]
include: Tuple[str, ...]
is_universal_pattern() bool[source]

Return true if there are no include patterns or they are empty. A universal pattern matches any domain

priority: int
class URLMatcher(data: Mapping[Any, Patterns] | Iterable[Tuple[Any, Patterns]] | None = None)[source]
__init__(data: Mapping[Any, Patterns] | Iterable[Tuple[Any, Patterns]] | None = None)[source]

A class that matches URLs against a list of patterns, returning the identifier of the rule that matched the URL.

Example usage:

matcher = URLMatcher()
matcher.add_or_update(1, Patterns(include=["example.com/product"]))
matcher.add_or_update(2, Patterns(include=["other.com"]))

assert matcher.match("http://example.com/product/a_product.html") == 1
assert matcher.match("http://other.com/a_different_page") == 2
Parameters:

data – A map or a list of tuples with identifier, patterns pairs to initialize the object from

add_or_update(identifier: Any, patterns: Patterns)[source]
get(identifier: Any) Patterns | None[source]
match(url: str, *, include_universal=True) Any | None[source]
match_all(url: str, *, include_universal=True) Iterator[Any][source]
match_universal() Iterator[Any][source]
remove(identifier: Any)[source]