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) None[source]
get(identifier: Any) Patterns | None[source]
match(url: str, *, include_universal: bool = True) Any | None[source]
match_all(url: str, *, include_universal: bool = True) Iterator[Any][source]
match_universal() Iterator[Any][source]
remove(identifier: Any) None[source]