From 4161a8c82c371ee34841a824ac99de9e2c8cc090 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Gra=C3=B1a?= Date: Fri, 1 Aug 2014 02:34:14 -0300 Subject: [PATCH] lint scrapy/http/request/*.py --- scrapy/http/request/__init__.py | 15 ++++++--------- scrapy/http/request/form.py | 12 +++++++++--- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/scrapy/http/request/__init__.py b/scrapy/http/request/__init__.py index f4282459f..89d9ee584 100644 --- a/scrapy/http/request/__init__.py +++ b/scrapy/http/request/__init__.py @@ -4,21 +4,18 @@ requests in Scrapy. See documentation in docs/topics/request-response.rst """ - -import copy - import six from w3lib.url import safe_url_string from scrapy.http.headers import Headers from scrapy.utils.trackref import object_ref -from scrapy.utils.decorator import deprecated from scrapy.utils.url import escape_ajax from scrapy.http.common import obsolete_setter + class Request(object_ref): - def __init__(self, url, callback=None, method='GET', headers=None, body=None, + def __init__(self, url, callback=None, method='GET', headers=None, body=None, cookies=None, meta=None, encoding='utf-8', priority=0, dont_filter=False, errback=None): @@ -54,7 +51,7 @@ class Request(object_ref): elif isinstance(url, six.text_type): if self.encoding is None: raise TypeError('Cannot convert unicode url - %s has no encoding' % - type(self).__name__) + type(self).__name__) self._set_url(url.encode(self.encoding)) else: raise TypeError('Request url must be str or unicode, got %s:' % type(url).__name__) @@ -72,7 +69,7 @@ class Request(object_ref): elif isinstance(body, six.text_type): if self.encoding is None: raise TypeError('Cannot convert unicode body - %s has no encoding' % - type(self).__name__) + type(self).__name__) self._body = body.encode(self.encoding) elif body is None: self._body = '' @@ -98,8 +95,8 @@ class Request(object_ref): """Create a new Request with the same attributes except for those given new values. """ - for x in ['url', 'method', 'headers', 'body', 'cookies', 'meta', \ - 'encoding', 'priority', 'dont_filter', 'callback', 'errback']: + for x in ['url', 'method', 'headers', 'body', 'cookies', 'meta', + 'encoding', 'priority', 'dont_filter', 'callback', 'errback']: kwargs.setdefault(x, getattr(self, x)) cls = kwargs.pop('cls', self.__class__) return cls(*args, **kwargs) diff --git a/scrapy/http/request/form.py b/scrapy/http/request/form.py index 53488e1a1..3aa9db960 100644 --- a/scrapy/http/request/form.py +++ b/scrapy/http/request/form.py @@ -41,17 +41,20 @@ class FormRequest(Request): method = kwargs.pop('method', form.method) return cls(url=url, method=method, formdata=formdata, **kwargs) + def _get_form_url(form, url): if url is None: return form.action or form.base_url return urljoin(form.base_url, url) + def _urlencode(seq, enc): values = [(unicode_to_str(k, enc), unicode_to_str(v, enc)) for k, vs in seq for v in (vs if hasattr(vs, '__iter__') else [vs])] return urllib.urlencode(values, doseq=1) + def _get_form(response, formname, formnumber, formxpath): """Find the form element """ from scrapy.selector.lxmldocument import LxmlDocument @@ -85,10 +88,11 @@ def _get_form(response, formname, formnumber, formxpath): form = forms[formnumber] except IndexError: raise IndexError("Form number %d not found in %s" % - (formnumber, response)) + (formnumber, response)) else: return form + def _get_inputs(form, formdata, dont_click, clickdata, response): try: formdata = dict(formdata or ()) @@ -99,8 +103,8 @@ def _get_inputs(form, formdata, dont_click, clickdata, response): '|descendant::select' '|descendant::input[@type!="submit" and @type!="image" and @type!="reset"' 'and ((@type!="checkbox" and @type!="radio") or @checked)]') - values = [(k, u'' if v is None else v) \ - for k, v in (_value(e) for e in inputs) \ + values = [(k, u'' if v is None else v) + for k, v in (_value(e) for e in inputs) if k and k not in formdata] if not dont_click: @@ -111,6 +115,7 @@ def _get_inputs(form, formdata, dont_click, clickdata, response): values.extend(formdata.items()) return values + def _value(ele): n = ele.name v = ele.value @@ -118,6 +123,7 @@ def _value(ele): return _select_value(ele, n, v) return n, v + def _select_value(ele, n, v): multiple = ele.multiple if v is None and not multiple: