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

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

Issue 29884571: Issue 6945 - Add script to make filter list diffs (Closed) Base URL: https://hg.adblockplus.org/python-abp/
Patch Set: Created Sept. 18, 2018, 3:57 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
« no previous file with comments | « no previous file | setup.py » ('j') | tests/test_diff_script.py » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 # This file is part of Adblock Plus <https://adblockplus.org/>,
2 # Copyright (C) 2006-present eyeo GmbH
3 #
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
6 # published by the Free Software Foundation.
7 #
8 # Adblock Plus is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # GNU General Public License for more details.
12 #
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/>.
15
16 """Command line script for rendering Adblock Plus filter list diffs."""
17
18 import argparse
19 import io
20 import sys
21
22 from collections import namedtuple
23
24 from .sources import NotFound
25 from .renderer import render_diff
26 __all__ = ['main']
27
28
29 def parse_args():
30 parser = argparse.ArgumentParser(description='Render a filter list diff.')
31 parser.add_argument(
32 'base', help='the older filter list that needs to be updated',
33 default='-', nargs='?')
34 parser.add_argument(
35 'latest', help='the most recent version of the filter list',
36 default='-', nargs='?')
37 parser.add_argument(
38 'outfile', help='output file for filter list diff',
39 default='-', nargs='?')
40 return parser.parse_args()
41
42
43 def main(args_in=None):
44 """Entry point for the diff rendering script (diffrender)."""
45 if args_in:
46 Parse = namedtuple('Test', 'base, latest, outfile')
47 args = Parse(args_in['base'], args_in['latest'], args_in['outfile'])
48 else:
49 args = parse_args()
50
51 base = open(args.base, 'r')
52 latest = open(args.latest, 'r')
Sebastian Noack 2018/09/18 16:56:12 Any reason you don't use io.open(..., encoding="ut
Sebastian Noack 2018/09/18 16:56:12 Please make sure all files are explicitly closed.
rhowell 2018/09/18 17:23:33 Done.
53
54 try:
55 lines = render_diff(base, latest)
56 if args.outfile == '-':
57 for line in lines:
58 sys.stdout.write(line + '\n')
59 else:
60 open(args.outfile, 'w')
rhowell 2018/09/18 16:01:54 This feels hacky..
Sebastian Noack 2018/09/18 16:56:12 Well, this is redundant. Why did you put it here?
rhowell 2018/09/18 17:23:33 Wow, you're right. I swore I was getting an error
Sebastian Noack 2018/09/18 19:13:18 Both, open(..., 'w') and io.open(..., 'w') create
61 with io.open(args.outfile, 'w', encoding='utf-8') as out_fp:
62 for line in lines:
63 out_fp.write(line + '\n')
64 except NotFound as exc:
65 sys.exit(exc)
OLDNEW
« no previous file with comments | « no previous file | setup.py » ('j') | tests/test_diff_script.py » ('J')

Powered by Google App Engine
This is Rietveld