import fnmatch
import logging
import re
-from typing import Any, Callable, List, Optional, Set
+from typing import Any, Callable, List, Optional, Set, Sequence
# This module is commonly used by others in here and should avoid
# taking any unnecessary dependencies back on them.
class AllowListACL(SetBasedACL):
"""Convenience subclass for a list that only allows known items.
- i.e. a 'whitelist'
+ i.e. a 'allowlist'
"""
def __init__(self,
*,
class DenyListACL(SetBasedACL):
"""Convenience subclass for a list that only disallows known items.
- i.e. a 'blacklist'
+ i.e. a 'blocklist'
+ """
+ def __init__(self,
+ *,
+ deny_set: Optional[Set[Any]]) -> None:
+ super().__init__(
+ deny_set = deny_set,
+ order_to_check_allow_deny = Order.ALLOW_DENY,
+ default_answer = True)
+
+
+class BlockListACL(SetBasedACL):
+ """Convenience subclass for a list that only disallows known items.
+ i.e. a 'blocklist'
"""
def __init__(self,
*,
"""An ACL that allows or denies by applying predicates."""
def __init__(self,
*,
- allow_predicate_list: List[Callable[[Any], bool]] = None,
- deny_predicate_list: List[Callable[[Any], bool]] = None,
+ allow_predicate_list: Sequence[Callable[[Any], bool]] = None,
+ deny_predicate_list: Sequence[Callable[[Any], bool]] = None,
order_to_check_allow_deny: Order,
default_answer: bool) -> None:
super().__init__(