(self, *middlewares: Any, crawler: Crawler | None = None)
| 39 | _compat_spider: Spider | None = None |
| 40 | |
| 41 | def __init__(self, *middlewares: Any, crawler: Crawler | None = None) -> None: |
| 42 | self.crawler: Crawler | None = crawler |
| 43 | if crawler is None: |
| 44 | warnings.warn( |
| 45 | f"MiddlewareManager.__init__() was called without the crawler argument" |
| 46 | f" when creating {global_object_name(self.__class__)}." |
| 47 | f" This is deprecated and the argument will be required in future Scrapy versions.", |
| 48 | category=ScrapyDeprecationWarning, |
| 49 | stacklevel=2, |
| 50 | ) |
| 51 | self.middlewares: tuple[Any, ...] = middlewares |
| 52 | # Only process_spider_output and process_spider_exception can be None. |
| 53 | self.methods: dict[str, deque[Callable[..., Any] | None]] = defaultdict(deque) |
| 54 | self._mw_methods_requiring_spider: set[Callable[..., Any]] = set() |
| 55 | for mw in middlewares: |
| 56 | self._add_middleware(mw) |
| 57 | |
| 58 | @property |
| 59 | def _spider(self) -> Spider: |
nothing calls this directly
no test coverage detected