Mercurial > hg
comparison mercurial/diffutil.py @ 43076:2372284d9457
formatting: blacken the codebase
This is using my patch to black
(https://github.com/psf/black/pull/826) so we don't un-wrap collection
literals.
Done with:
hg files 'set:**.py - mercurial/thirdparty/** - "contrib/python-zstandard/**"' | xargs black -S
# skip-blame mass-reformatting only
# no-check-commit reformats foo_bar functions
Differential Revision: https://phab.mercurial-scm.org/D6971
author | Augie Fackler <augie@google.com> |
---|---|
date | Sun, 06 Oct 2019 09:45:02 -0400 |
parents | 78b270a55dc6 |
children | 687b865b95ad |
comparison
equal
deleted
inserted
replaced
43075:57875cf423c9 | 43076:2372284d9457 |
---|---|
14 from . import ( | 14 from . import ( |
15 mdiff, | 15 mdiff, |
16 pycompat, | 16 pycompat, |
17 ) | 17 ) |
18 | 18 |
19 def diffallopts(ui, opts=None, untrusted=False, section='diff', | 19 |
20 configprefix=''): | 20 def diffallopts( |
21 ui, opts=None, untrusted=False, section='diff', configprefix='' | |
22 ): | |
21 '''return diffopts with all features supported and parsed''' | 23 '''return diffopts with all features supported and parsed''' |
22 return difffeatureopts(ui, opts=opts, untrusted=untrusted, section=section, | 24 return difffeatureopts( |
23 git=True, whitespace=True, formatchanging=True, | 25 ui, |
24 configprefix=configprefix) | 26 opts=opts, |
27 untrusted=untrusted, | |
28 section=section, | |
29 git=True, | |
30 whitespace=True, | |
31 formatchanging=True, | |
32 configprefix=configprefix, | |
33 ) | |
25 | 34 |
26 def difffeatureopts(ui, opts=None, untrusted=False, section='diff', git=False, | 35 |
27 whitespace=False, formatchanging=False, configprefix=''): | 36 def difffeatureopts( |
37 ui, | |
38 opts=None, | |
39 untrusted=False, | |
40 section='diff', | |
41 git=False, | |
42 whitespace=False, | |
43 formatchanging=False, | |
44 configprefix='', | |
45 ): | |
28 '''return diffopts with only opted-in features parsed | 46 '''return diffopts with only opted-in features parsed |
29 | 47 |
30 Features: | 48 Features: |
31 - git: git-style diffs | 49 - git: git-style diffs |
32 - whitespace: whitespace options like ignoreblanklines and ignorews | 50 - whitespace: whitespace options like ignoreblanklines and ignorews |
33 - formatchanging: options that will likely break or cause correctness issues | 51 - formatchanging: options that will likely break or cause correctness issues |
34 with most diff parsers | 52 with most diff parsers |
35 ''' | 53 ''' |
54 | |
36 def get(key, name=None, getter=ui.configbool, forceplain=None): | 55 def get(key, name=None, getter=ui.configbool, forceplain=None): |
37 if opts: | 56 if opts: |
38 v = opts.get(key) | 57 v = opts.get(key) |
39 # diffopts flags are either None-default (which is passed | 58 # diffopts flags are either None-default (which is passed |
40 # through unchanged, so we can identify unset values), or | 59 # through unchanged, so we can identify unset values), or |
45 # True, or False. | 64 # True, or False. |
46 if v or isinstance(v, bool): | 65 if v or isinstance(v, bool): |
47 return v | 66 return v |
48 if forceplain is not None and ui.plain(): | 67 if forceplain is not None and ui.plain(): |
49 return forceplain | 68 return forceplain |
50 return getter(section, configprefix + (name or key), | 69 return getter( |
51 untrusted=untrusted) | 70 section, configprefix + (name or key), untrusted=untrusted |
71 ) | |
52 | 72 |
53 # core options, expected to be understood by every diff parser | 73 # core options, expected to be understood by every diff parser |
54 buildopts = { | 74 buildopts = { |
55 'nodates': get('nodates'), | 75 'nodates': get('nodates'), |
56 'showfunc': get('show_function', 'showfunc'), | 76 'showfunc': get('show_function', 'showfunc'), |
61 if git: | 81 if git: |
62 buildopts['git'] = get('git') | 82 buildopts['git'] = get('git') |
63 | 83 |
64 # since this is in the experimental section, we need to call | 84 # since this is in the experimental section, we need to call |
65 # ui.configbool directory | 85 # ui.configbool directory |
66 buildopts['showsimilarity'] = ui.configbool('experimental', | 86 buildopts['showsimilarity'] = ui.configbool( |
67 'extendedheader.similarity') | 87 'experimental', 'extendedheader.similarity' |
88 ) | |
68 | 89 |
69 # need to inspect the ui object instead of using get() since we want to | 90 # need to inspect the ui object instead of using get() since we want to |
70 # test for an int | 91 # test for an int |
71 hconf = ui.config('experimental', 'extendedheader.index') | 92 hconf = ui.config('experimental', 'extendedheader.index') |
72 if hconf is not None: | 93 if hconf is not None: |
90 finally: | 111 finally: |
91 buildopts['index'] = hlen | 112 buildopts['index'] = hlen |
92 | 113 |
93 if whitespace: | 114 if whitespace: |
94 buildopts['ignorews'] = get('ignore_all_space', 'ignorews') | 115 buildopts['ignorews'] = get('ignore_all_space', 'ignorews') |
95 buildopts['ignorewsamount'] = get('ignore_space_change', | 116 buildopts['ignorewsamount'] = get( |
96 'ignorewsamount') | 117 'ignore_space_change', 'ignorewsamount' |
97 buildopts['ignoreblanklines'] = get('ignore_blank_lines', | 118 ) |
98 'ignoreblanklines') | 119 buildopts['ignoreblanklines'] = get( |
120 'ignore_blank_lines', 'ignoreblanklines' | |
121 ) | |
99 buildopts['ignorewseol'] = get('ignore_space_at_eol', 'ignorewseol') | 122 buildopts['ignorewseol'] = get('ignore_space_at_eol', 'ignorewseol') |
100 if formatchanging: | 123 if formatchanging: |
101 buildopts['text'] = opts and opts.get('text') | 124 buildopts['text'] = opts and opts.get('text') |
102 binary = None if opts is None else opts.get('binary') | 125 binary = None if opts is None else opts.get('binary') |
103 buildopts['nobinary'] = (not binary if binary is not None | 126 buildopts['nobinary'] = ( |
104 else get('nobinary', forceplain=False)) | 127 not binary |
128 if binary is not None | |
129 else get('nobinary', forceplain=False) | |
130 ) | |
105 buildopts['noprefix'] = get('noprefix', forceplain=False) | 131 buildopts['noprefix'] = get('noprefix', forceplain=False) |
106 buildopts['worddiff'] = get('word_diff', 'word-diff', forceplain=False) | 132 buildopts['worddiff'] = get('word_diff', 'word-diff', forceplain=False) |
107 | 133 |
108 return mdiff.diffopts(**pycompat.strkwargs(buildopts)) | 134 return mdiff.diffopts(**pycompat.strkwargs(buildopts)) |