Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: abp/filters/sources.py

Issue 29341320: Noissue - Added flake8-abp and pep8-naming extension and fix reported warnings (Closed)
Patch Set: Fixed some broken string literals in Python 2 Created May 12, 2016, 3:27 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
OLDNEW
1 # This file is part of Adblock Plus <https://adblockplus.org/>, 1 # This file is part of Adblock Plus <https://adblockplus.org/>,
2 # Copyright (C) 2006-2016 Eyeo GmbH 2 # Copyright (C) 2006-2016 Eyeo GmbH
3 # 3 #
4 # Adblock Plus is free software: you can redistribute it and/or modify 4 # Adblock Plus is free software: you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License version 3 as 5 # it under the terms of the GNU General Public License version 3 as
6 # published by the Free Software Foundation. 6 # published by the Free Software Foundation.
7 # 7 #
8 # Adblock Plus is distributed in the hope that it will be useful, 8 # Adblock Plus is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of 9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # GNU General Public License for more details. 11 # GNU General Public License for more details.
12 # 12 #
13 # You should have received a copy of the GNU General Public License 13 # You should have received a copy of the GNU General Public License
14 # along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. 14 # along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>.
15 15
16 """Helper classes that handle IO for parsing and rendering.""" 16 """Helper classes that handle IO for parsing and rendering."""
17 17
18 import codecs 18 import io
19 from os import path 19 from os import path
20 20
21 try: 21 try:
22 from urllib2 import urlopen, HTTPError 22 from urllib2 import urlopen, HTTPError
23 except ImportError: # The module was renamed in Python 3. 23 except ImportError: # The module was renamed in Python 3.
24 from urllib.request import urlopen 24 from urllib.request import urlopen
25 from urllib.error import HTTPError 25 from urllib.error import HTTPError
26 26
27 __all__ = ['FSSource', 'TopSource', 'WebSource', 'NotFound'] 27 __all__ = ['FSSource', 'TopSource', 'WebSource', 'NotFound']
28 28
(...skipping 17 matching lines...) Expand all
46 46
47 def __init__(self, root_path, encoding='utf-8'): 47 def __init__(self, root_path, encoding='utf-8'):
48 root_path = path.abspath(root_path) 48 root_path = path.abspath(root_path)
49 self.root_path = root_path 49 self.root_path = root_path
50 self.encoding = encoding 50 self.encoding = encoding
51 51
52 def resolve_path(self, path_in_source): 52 def resolve_path(self, path_in_source):
53 parts = path_in_source.split('/') 53 parts = path_in_source.split('/')
54 full_path = path.abspath(path.join(self.root_path, *parts)) 54 full_path = path.abspath(path.join(self.root_path, *parts))
55 if not full_path.startswith(self.root_path): 55 if not full_path.startswith(self.root_path):
56 raise ValueError('Invalid path: \'{}\''.format(path_in_source)) 56 raise ValueError("Invalid path: '{}'".format(path_in_source))
57 return full_path 57 return full_path
58 58
59 def get(self, path_in_source): 59 def get(self, path_in_source):
60 full_path = self.resolve_path(path_in_source) 60 full_path = self.resolve_path(path_in_source)
61 try: 61 try:
62 with codecs.open(full_path, encoding=self.encoding) as open_file: 62 with io.open(full_path, encoding=self.encoding) as open_file:
63 for line in open_file: 63 for line in open_file:
64 yield line.rstrip() 64 yield line.rstrip()
65 except IOError as exc: 65 except IOError as exc:
66 if exc.errno == 2: # No such file or directory. 66 if exc.errno == 2: # No such file or directory.
67 raise NotFound('File not found: \'{}\''.format(full_path)) 67 raise NotFound("File not found: '{}'".format(full_path))
68 else: 68 raise exc
69 raise exc
70 69
71 70
72 class TopSource(FSSource): 71 class TopSource(FSSource):
73 """Current directory without path conversion. 72 """Current directory without path conversion.
74 73
75 Also supports absolute paths. This source is used for the top fragment. 74 Also supports absolute paths. This source is used for the top fragment.
76 75
77 :param encoding: Encoding to use for reading the files (default: utf-8). 76 :param encoding: Encoding to use for reading the files (default: utf-8).
78 """ 77 """
79 78
(...skipping 27 matching lines...) Expand all
107 info = response.info() 106 info = response.info()
108 # info.getparam became info.get_param in Python 3 so we'll 107 # info.getparam became info.get_param in Python 3 so we'll
109 # try both. 108 # try both.
110 get_param = (getattr(info, 'get_param', None) or 109 get_param = (getattr(info, 'get_param', None) or
111 getattr(info, 'getparam', None)) 110 getattr(info, 'getparam', None))
112 encoding = get_param('charset') or self.default_encoding 111 encoding = get_param('charset') or self.default_encoding
113 for line in response: 112 for line in response:
114 yield line.decode(encoding).rstrip() 113 yield line.decode(encoding).rstrip()
115 except HTTPError as err: 114 except HTTPError as err:
116 if err.code == 404: 115 if err.code == 404:
117 raise NotFound('HTTP 404 Not found: \'{}:{}\'' 116 raise NotFound("HTTP 404 Not found: '{}:{}'"
118 .format(self.protocol, path_in_source)) 117 .format(self.protocol, path_in_source))
119 else: 118 raise err
120 raise err
OLDNEW
« no previous file with comments | « abp/filters/renderer.py ('k') | setup.py » ('j') | tests/test_render_script.py » ('J')

Powered by Google App Engine
This is Rietveld