From c9ab2fa5697fdfe7ee172b04180bb156113241be Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Tue, 22 Apr 2025 21:40:52 +0100 Subject: [PATCH 1/3] Don't require list --- blockbuster/blockbuster.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/blockbuster/blockbuster.py b/blockbuster/blockbuster.py index 08c9a27..03eda57 100644 --- a/blockbuster/blockbuster.py +++ b/blockbuster/blockbuster.py @@ -15,14 +15,14 @@ from contextvars import ContextVar from pathlib import Path from types import ModuleType -from typing import TYPE_CHECKING, Any, List, TypeVar, Union +from typing import TYPE_CHECKING, Any, TypeVar, Union if TYPE_CHECKING: import socket import threading - from collections.abc import Callable, Iterable, Iterator + from collections.abc import Callable, Iterable, Iterator, Sequence - _ModuleList = Union[List[Union[str, ModuleType]], None] + _ModuleList = Union[Sequence[Union[str, ModuleType]], None] _ModuleOrModuleList = Union[str, ModuleType, _ModuleList] if platform.python_implementation() == "CPython": @@ -114,7 +114,7 @@ def wrapper(*args: Any, **kwargs: Any) -> _T: return wrapper -def _resolve_module_paths(modules: list[str | ModuleType]) -> list[str]: +def _resolve_module_paths(modules: Sequence[str | ModuleType]) -> list[str]: resolved: list[str] = [] for module in modules: module_ = importlib.import_module(module) if isinstance(module, str) else module From e1d96887dbc37babe8c03d950cec0cd6359e49b3 Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Tue, 22 Apr 2025 21:45:14 +0100 Subject: [PATCH 2/3] Update blockbuster.py --- blockbuster/blockbuster.py | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/blockbuster/blockbuster.py b/blockbuster/blockbuster.py index 03eda57..245846c 100644 --- a/blockbuster/blockbuster.py +++ b/blockbuster/blockbuster.py @@ -184,17 +184,12 @@ def __init__( ) self.can_block_predicate: Callable[..., bool] = can_block_predicate self.activated = False - self._scanned_modules: list[str] = [] - if isinstance(scanned_modules, list): - _scanned_modules = scanned_modules - elif isinstance(scanned_modules, (str, ModuleType)): + if isinstance(scanned_modules, (str, ModuleType)): _scanned_modules = [scanned_modules] else: - _scanned_modules = [] + _scanned_modules = scanned_modules or [] self._scanned_modules = _resolve_module_paths(_scanned_modules) - self._excluded_modules: list[str] = _resolve_module_paths( - excluded_modules or [] - ) + self._excluded_modules = _resolve_module_paths(excluded_modules or []) def activate(self) -> BlockBusterFunction: """Activate the blocking detection.""" From 2a2a68f26541a317c2ccc61f2a3ac8ecb89bbd88 Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Tue, 20 May 2025 16:48:23 +0100 Subject: [PATCH 3/3] Update blockbuster.py --- blockbuster/blockbuster.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blockbuster/blockbuster.py b/blockbuster/blockbuster.py index 245846c..72f39ff 100644 --- a/blockbuster/blockbuster.py +++ b/blockbuster/blockbuster.py @@ -185,7 +185,7 @@ def __init__( self.can_block_predicate: Callable[..., bool] = can_block_predicate self.activated = False if isinstance(scanned_modules, (str, ModuleType)): - _scanned_modules = [scanned_modules] + _scanned_modules: Sequence[str | ModuleType] = [scanned_modules] else: _scanned_modules = scanned_modules or [] self._scanned_modules = _resolve_module_paths(_scanned_modules)