未验证 提交 099fb6ea 编写于 作者: A Andrey Rahmatullin 提交者: GitHub

Merge pull request #5076 from wRAR/qualname

Use __qualname__ in middleware handling.
...@@ -36,8 +36,7 @@ class DownloaderMiddlewareManager(MiddlewareManager): ...@@ -36,8 +36,7 @@ class DownloaderMiddlewareManager(MiddlewareManager):
response = yield deferred_from_coro(method(request=request, spider=spider)) response = yield deferred_from_coro(method(request=request, spider=spider))
if response is not None and not isinstance(response, (Response, Request)): if response is not None and not isinstance(response, (Response, Request)):
raise _InvalidOutput( raise _InvalidOutput(
f"Middleware {method.__self__.__class__.__name__}" f"Middleware {method.__qualname__} must return None, Response or "
".process_request must return None, Response or "
f"Request, got {response.__class__.__name__}" f"Request, got {response.__class__.__name__}"
) )
if response: if response:
...@@ -55,8 +54,7 @@ class DownloaderMiddlewareManager(MiddlewareManager): ...@@ -55,8 +54,7 @@ class DownloaderMiddlewareManager(MiddlewareManager):
response = yield deferred_from_coro(method(request=request, response=response, spider=spider)) response = yield deferred_from_coro(method(request=request, response=response, spider=spider))
if not isinstance(response, (Response, Request)): if not isinstance(response, (Response, Request)):
raise _InvalidOutput( raise _InvalidOutput(
f"Middleware {method.__self__.__class__.__name__}" f"Middleware {method.__qualname__} must return Response or Request, "
".process_response must return Response or Request, "
f"got {type(response)}" f"got {type(response)}"
) )
if isinstance(response, Request): if isinstance(response, Request):
...@@ -70,8 +68,7 @@ class DownloaderMiddlewareManager(MiddlewareManager): ...@@ -70,8 +68,7 @@ class DownloaderMiddlewareManager(MiddlewareManager):
response = yield deferred_from_coro(method(request=request, exception=exception, spider=spider)) response = yield deferred_from_coro(method(request=request, exception=exception, spider=spider))
if response is not None and not isinstance(response, (Response, Request)): if response is not None and not isinstance(response, (Response, Request)):
raise _InvalidOutput( raise _InvalidOutput(
f"Middleware {method.__self__.__class__.__name__}" f"Middleware {method.__qualname__} must return None, Response or "
".process_exception must return None, Response or "
f"Request, got {type(response)}" f"Request, got {type(response)}"
) )
if response: if response:
......
...@@ -18,10 +18,6 @@ def _isiterable(possible_iterator): ...@@ -18,10 +18,6 @@ def _isiterable(possible_iterator):
return hasattr(possible_iterator, '__iter__') return hasattr(possible_iterator, '__iter__')
def _fname(f):
return f"{f.__self__.__class__.__name__}.{f.__func__.__name__}"
class SpiderMiddlewareManager(MiddlewareManager): class SpiderMiddlewareManager(MiddlewareManager):
component_name = 'spider middleware' component_name = 'spider middleware'
...@@ -46,7 +42,7 @@ class SpiderMiddlewareManager(MiddlewareManager): ...@@ -46,7 +42,7 @@ class SpiderMiddlewareManager(MiddlewareManager):
try: try:
result = method(response=response, spider=spider) result = method(response=response, spider=spider)
if result is not None: if result is not None:
msg = (f"Middleware {_fname(method)} must return None " msg = (f"Middleware {method.__qualname__} must return None "
f"or raise an exception, got {type(result)}") f"or raise an exception, got {type(result)}")
raise _InvalidOutput(msg) raise _InvalidOutput(msg)
except _InvalidOutput: except _InvalidOutput:
...@@ -83,7 +79,7 @@ class SpiderMiddlewareManager(MiddlewareManager): ...@@ -83,7 +79,7 @@ class SpiderMiddlewareManager(MiddlewareManager):
elif result is None: elif result is None:
continue continue
else: else:
msg = (f"Middleware {_fname(method)} must return None " msg = (f"Middleware {method.__qualname__} must return None "
f"or an iterable, got {type(result)}") f"or an iterable, got {type(result)}")
raise _InvalidOutput(msg) raise _InvalidOutput(msg)
return _failure return _failure
...@@ -108,7 +104,7 @@ class SpiderMiddlewareManager(MiddlewareManager): ...@@ -108,7 +104,7 @@ class SpiderMiddlewareManager(MiddlewareManager):
if _isiterable(result): if _isiterable(result):
result = self._evaluate_iterable(response, spider, result, method_index + 1, recovered) result = self._evaluate_iterable(response, spider, result, method_index + 1, recovered)
else: else:
msg = (f"Middleware {_fname(method)} must return an " msg = (f"Middleware {method.__qualname__} must return an "
f"iterable, got {type(result)}") f"iterable, got {type(result)}")
raise _InvalidOutput(msg) raise _InvalidOutput(msg)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册