From 6e762ce25cb15ed16f10bc218f38133801548604 Mon Sep 17 00:00:00 2001 From: nyov Date: Wed, 29 Jul 2015 15:34:27 +0000 Subject: [PATCH] PY3 renames (six types) --- scrapy/core/downloader/handlers/s3.py | 2 +- scrapy/core/downloader/middleware.py | 8 ++++---- scrapy/core/spidermw.py | 6 ++++-- scrapy/linkextractors/htmlparser.py | 2 +- tests/test_crawl.py | 2 +- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/scrapy/core/downloader/handlers/s3.py b/scrapy/core/downloader/handlers/s3.py index f890300c4..311815b70 100644 --- a/scrapy/core/downloader/handlers/s3.py +++ b/scrapy/core/downloader/handlers/s3.py @@ -1,4 +1,4 @@ -from urlparse import unquote +from six.moves.urllib.parse import unquote from scrapy.exceptions import NotConfigured from scrapy.utils.httpobj import urlparse_cached diff --git a/scrapy/core/downloader/middleware.py b/scrapy/core/downloader/middleware.py index dcc588ef2..413a05dd1 100644 --- a/scrapy/core/downloader/middleware.py +++ b/scrapy/core/downloader/middleware.py @@ -3,7 +3,7 @@ Downloader Middleware manager See documentation in docs/topics/downloader-middleware.rst """ - +import six from scrapy.http import Request, Response from scrapy.middleware import MiddlewareManager from scrapy.utils.defer import mustbe_deferred @@ -32,7 +32,7 @@ class DownloaderMiddlewareManager(MiddlewareManager): response = method(request=request, spider=spider) assert response is None or isinstance(response, (Response, Request)), \ 'Middleware %s.process_request must return None, Response or Request, got %s' % \ - (method.im_self.__class__.__name__, response.__class__.__name__) + (six.get_method_self(method).__class__.__name__, response.__class__.__name__) if response: return response return download_func(request=request, spider=spider) @@ -46,7 +46,7 @@ class DownloaderMiddlewareManager(MiddlewareManager): response = method(request=request, response=response, spider=spider) assert isinstance(response, (Response, Request)), \ 'Middleware %s.process_response must return Response or Request, got %s' % \ - (method.im_self.__class__.__name__, type(response)) + (six.get_method_self(method).__class__.__name__, type(response)) if isinstance(response, Request): return response return response @@ -57,7 +57,7 @@ class DownloaderMiddlewareManager(MiddlewareManager): response = method(request=request, exception=exception, spider=spider) assert response is None or isinstance(response, (Response, Request)), \ 'Middleware %s.process_exception must return None, Response or Request, got %s' % \ - (method.im_self.__class__.__name__, type(response)) + (six.get_method_self(method).__class__.__name__, type(response)) if response: return response return _failure diff --git a/scrapy/core/spidermw.py b/scrapy/core/spidermw.py index f6bb62afb..c1c5b10fc 100644 --- a/scrapy/core/spidermw.py +++ b/scrapy/core/spidermw.py @@ -3,7 +3,7 @@ Spider Middleware manager See documentation in docs/topics/spider-middleware.rst """ - +import six from twisted.python.failure import Failure from scrapy.middleware import MiddlewareManager from scrapy.utils.defer import mustbe_deferred @@ -33,7 +33,9 @@ class SpiderMiddlewareManager(MiddlewareManager): self.methods['process_start_requests'].insert(0, mw.process_start_requests) def scrape_response(self, scrape_func, response, request, spider): - fname = lambda f:'%s.%s' % (f.im_self.__class__.__name__, f.im_func.__name__) + fname = lambda f:'%s.%s' % ( + six.get_method_self(f).__class__.__name__, + six.get_method_function(f).__name__) def process_spider_input(response): for method in self.methods['process_spider_input']: diff --git a/scrapy/linkextractors/htmlparser.py b/scrapy/linkextractors/htmlparser.py index 14f4970b0..202340f53 100644 --- a/scrapy/linkextractors/htmlparser.py +++ b/scrapy/linkextractors/htmlparser.py @@ -3,7 +3,7 @@ HTMLParser-based link extractor """ import warnings -from HTMLParser import HTMLParser +from six.moves.html_parser import HTMLParser from six.moves.urllib.parse import urljoin from w3lib.url import safe_url_string diff --git a/tests/test_crawl.py b/tests/test_crawl.py index f2ebf9c69..6d21acab0 100644 --- a/tests/test_crawl.py +++ b/tests/test_crawl.py @@ -141,7 +141,7 @@ class CrawlTestCase(TestCase): def test_unbounded_response(self): # Completeness of responses without Content-Length or Transfer-Encoding # can not be determined, we treat them as valid but flagged as "partial" - from urllib import urlencode + from six.moves.urllib.parse import urlencode query = urlencode({'raw': '''\ HTTP/1.1 200 OK Server: Apache-Coyote/1.1