Skip to content

Commit 5ae6d30

Browse files
committed
format code using ruff format, move to F-strings
1 parent f27220a commit 5ae6d30

21 files changed

+622
-383
lines changed

nested_diff/__init__.py

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,14 @@
3535
nested_diff.handlers.TupleHandler(),
3636
nested_diff.handlers.SetHandler(),
3737
nested_diff.handlers.FrozenSetHandler(),
38-
3938
nested_diff.handlers.IntHandler(),
4039
nested_diff.handlers.FloatHandler(),
4140
nested_diff.handlers.StrHandler(),
4241
nested_diff.handlers.BytesHandler(),
4342
)
4443

4544

46-
class Differ():
45+
class Differ:
4746
"""
4847
Compute recursive diff for two passed objects.
4948
@@ -102,8 +101,17 @@ class Differ():
102101

103102
default_differ = DEFAULT_HANDLER.diff
104103

105-
def __init__(self, A=True, N=True, O=True, R=True, U=True, # noqa: E501 E741 N803
106-
trimR=False, dumper=None, handlers=None):
104+
def __init__(
105+
self,
106+
A=True, # noqa: N803
107+
N=True,
108+
O=True, # noqa: E741
109+
R=True,
110+
U=True,
111+
trimR=False,
112+
dumper=None,
113+
handlers=None,
114+
):
107115
"""Initialize Differ.
108116
109117
Args:
@@ -167,7 +175,7 @@ def set_handler(self, handler):
167175
self._differs[handler.handled_type] = handler.diff
168176

169177

170-
class Patcher():
178+
class Patcher:
171179
"""Patch objects using nested diff."""
172180

173181
default_patcher = DEFAULT_HANDLER.patch
@@ -211,16 +219,18 @@ def patch(self, target, ndiff):
211219
try:
212220
patcher = self._patchers_by_ext[extension_id]
213221
except KeyError:
214-
raise ValueError('unsupported extension: '
215-
+ extension_id) from None
222+
raise ValueError(
223+
f'unsupported extension: {extension_id}',
224+
) from None
216225
except KeyError:
217226
cls = ndiff['D'].__class__
218227

219228
try:
220229
patcher = self._patchers_by_cls[cls]
221230
except KeyError:
222-
raise ValueError('unsupported patch type: '
223-
+ cls.__name__) from None
231+
raise ValueError(
232+
f'unsupported patch type: {cls.__name__}',
233+
) from None
224234

225235
return patcher(self, target, ndiff)
226236

@@ -239,7 +249,7 @@ def set_handler(self, handler):
239249
self._patchers_by_ext[handler.extension_id] = handler.patch
240250

241251

242-
class Iterator():
252+
class Iterator:
243253
"""Nested diff iterator."""
244254

245255
default_iterator = DEFAULT_HANDLER.iterate_diff
@@ -267,8 +277,9 @@ def _get_iterator(self, ndiff):
267277
try:
268278
iterator = self._iters_by_ext[extension_id]
269279
except KeyError:
270-
raise ValueError('unsupported extension: '
271-
+ extension_id) from None
280+
raise ValueError(
281+
f'unsupported extension: {extension_id}',
282+
) from None
272283
except KeyError:
273284
try:
274285
iterator = self._iters_by_cls[ndiff['D'].__class__]

nested_diff/cli.py

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import nested_diff
2424

2525

26-
class App():
26+
class App:
2727
"""Base class for command line tools."""
2828

2929
default_ifmt = 'auto'
@@ -52,6 +52,7 @@ def _decode_fmt_opts(opts):
5252
return {}
5353

5454
import json
55+
5556
return json.loads(opts)
5657

5758
@classmethod
@@ -66,7 +67,7 @@ def dumper(self): # noqa D102
6667
except AttributeError:
6768
self.__dumper = self.get_dumper(
6869
self.args.ofmt,
69-
**self._decode_fmt_opts(self.args.ofmt_opts) # noqa C815
70+
**self._decode_fmt_opts(self.args.ofmt_opts),
7071
)
7172

7273
return self.__dumper
@@ -87,7 +88,7 @@ def get_optional_args_parser(self):
8788
parser.add_argument(
8889
'--version',
8990
action='version',
90-
version='%(prog)s {}'.format(self.version),
91+
version=f'%(prog)s {self.version}',
9192
help='print version and exit',
9293
)
9394

@@ -152,7 +153,7 @@ def get_dumper(fmt, **kwargs):
152153
if fmt == 'toml':
153154
return TomlDumper(**kwargs)
154155

155-
raise RuntimeError('Unsupported output format: ' + fmt)
156+
raise RuntimeError(f'Unsupported output format: {fmt}')
156157

157158
@staticmethod
158159
def guess_fmt(fp, default, ignore_fps=(sys.stdin, sys.stdout, sys.stderr)):
@@ -191,7 +192,7 @@ def get_loader(fmt, **kwargs):
191192
if fmt == 'toml':
192193
return TomlLoader(**kwargs)
193194

194-
raise RuntimeError('Unsupported input format: ' + fmt)
195+
raise RuntimeError(f'Unsupported input format: {fmt}')
195196

196197
def load(self, file_):
197198
"""Load data from file using apropriate loader.
@@ -220,6 +221,7 @@ def override_excepthook():
220221
in files).
221222
222223
"""
224+
223225
def overrided(*args, **kwargs):
224226
sys.__excepthook__(*args, **kwargs) # do all the same
225227
raise SystemExit(127) # but change exit code
@@ -236,7 +238,7 @@ def run(self):
236238
raise NotImplementedError
237239

238240

239-
class Dumper():
241+
class Dumper:
240242
"""Base class for data dumpers."""
241243

242244
tty_final_new_line = False
@@ -285,7 +287,7 @@ def dump(self, file_, data):
285287
file_.flush()
286288

287289

288-
class Loader():
290+
class Loader:
289291
"""Base class for data loaders."""
290292

291293
def decode(self, data): # noqa U100
@@ -333,6 +335,7 @@ def __init__(self, **kwargs):
333335
super().__init__()
334336

335337
import json
338+
336339
self.encoder = json.JSONEncoder(**self.get_opts(kwargs))
337340

338341
def encode(self, data):
@@ -370,6 +373,7 @@ def __init__(self, **kwargs):
370373
super().__init__()
371374

372375
import json
376+
373377
self.decoder = json.JSONDecoder(**self.get_opts(kwargs))
374378

375379
def decode(self, data):
@@ -391,6 +395,7 @@ def __init__(self, **kwargs):
391395

392396
import configparser
393397
import io
398+
394399
self.encoder = configparser.ConfigParser(**self.get_opts(kwargs))
395400
self.stringio = io.StringIO()
396401

@@ -415,6 +420,7 @@ def __init__(self, **kwargs):
415420
super().__init__()
416421

417422
import configparser
423+
418424
self.decoder = configparser.ConfigParser(**kwargs)
419425

420426
def decode(self, data):
@@ -441,6 +447,7 @@ def __init__(self):
441447
super().__init__()
442448

443449
import tomli_w
450+
444451
self.codec = tomli_w
445452

446453
def encode(self, data):
@@ -480,6 +487,7 @@ def __init__(self, **kwargs):
480487
super().__init__()
481488

482489
import yaml
490+
483491
try:
484492
from yaml import CSafeDumper as ImportedYamlDumper
485493
except ImportError:
@@ -532,6 +540,7 @@ def __init__(self, **kwargs):
532540
super().__init__()
533541

534542
import yaml
543+
535544
try:
536545
from yaml import CSafeLoader as YamlLoader
537546
except ImportError:

nested_diff/diff_tool.py

Lines changed: 50 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def diff(self, a, b, **kwargs):
4545
diff_opts = {
4646
'A': self.args.A,
4747
'N': self.args.N,
48-
'O': self.args.O, # noqa: E741
48+
'O': self.args.O,
4949
'R': self.args.R,
5050
'U': self.args.U,
5151
}
@@ -60,8 +60,9 @@ def diff(self, a, b, **kwargs):
6060
differ = nested_diff.Differ(**diff_opts)
6161

6262
if self.args.text_ctx >= 0:
63-
differ.set_handler(nested_diff.handlers.TextHandler(
64-
context=self.args.text_ctx))
63+
differ.set_handler(
64+
nested_diff.handlers.TextHandler(context=self.args.text_ctx),
65+
)
6566

6667
return differ.diff(a, b)
6768

@@ -85,8 +86,8 @@ def generate_diffs(self):
8586
if self.args.show:
8687
if headers_enabled:
8788
header = self.dumper.get_diff_header(
88-
'/dev/null (' + file_.name + ')',
89-
'/dev/null (' + file_.name + ')',
89+
f'/dev/null ({file_.name})',
90+
f'/dev/null ({file_.name})',
9091
)
9192
diff = self.load(file_)
9293
equal = not diff or 'U' in diff
@@ -114,7 +115,7 @@ def get_optional_args_parser(self):
114115
'--show',
115116
action='store_true',
116117
help="don't diff arguments, just format and show them; nested "
117-
'diffs expected on input',
118+
'diffs expected for input',
118119
)
119120

120121
parser.add_argument(
@@ -123,8 +124,7 @@ def get_optional_args_parser(self):
123124
metavar='NUM',
124125
type=int,
125126
help='amount of context lines for text (multiline strings) diffs; '
126-
'negative value will disable such diffs, default is '
127-
'"%(default)s"',
127+
'negative value will disable such diffs, default is "%(default)s"',
128128
)
129129

130130
parser.add_argument(
@@ -136,7 +136,8 @@ def get_optional_args_parser(self):
136136
)
137137

138138
parser.add_argument(
139-
'-q', '--quiet',
139+
'-q',
140+
'--quiet',
140141
action='store_true',
141142
help="don't show diff, exit code is the only difference indicator",
142143
)
@@ -146,21 +147,45 @@ def get_optional_args_parser(self):
146147
choices=('repr', 'none', 'json', 'yaml'),
147148
default='repr',
148149
help='values format; "none" means no values printed, "repr" is a '
149-
'python representation of the object, rest are themselves; '
150-
'default is "%(default)s"',
150+
'python representation of the object, rest are themselves; default'
151+
' is "%(default)s"',
151152
)
152153

153-
parser.add_argument('-A', type=int, choices=(0, 1), default=1,
154-
help='show added items; enabled by default')
155-
parser.add_argument('-N', type=int, choices=(0, 1), default=1,
156-
help="show item's new values; enabled by default")
157-
parser.add_argument('-O', type=int, choices=(0, 1), default=1,
158-
help="show item's old values; enabled by default")
159-
parser.add_argument('-R', choices=('0', '1', 'trim'), default=1,
160-
help='Show removed items; enabled (1) by default. '
161-
'Value will be replaced by null when "trim" used')
162-
parser.add_argument('-U', type=int, choices=(0, 1), default=0,
163-
help='show unchanged items; disabled by default')
154+
parser.add_argument(
155+
'-A',
156+
choices=(0, 1),
157+
default=1,
158+
help='show added items; enabled by default',
159+
type=int,
160+
)
161+
parser.add_argument(
162+
'-N',
163+
choices=(0, 1),
164+
default=1,
165+
help="show item's new values; enabled by default",
166+
type=int,
167+
)
168+
parser.add_argument(
169+
'-O',
170+
choices=(0, 1),
171+
default=1,
172+
help="show item's old values; enabled by default",
173+
type=int,
174+
)
175+
parser.add_argument(
176+
'-R',
177+
choices=('0', '1', 'trim'),
178+
default=1,
179+
help='Show removed items; enabled (1) by default. '
180+
'Value will be replaced by null when "trim" used',
181+
)
182+
parser.add_argument(
183+
'-U',
184+
choices=(0, 1),
185+
default=0,
186+
help='show unchanged items; disabled by default',
187+
type=int,
188+
)
164189

165190
return parser
166191

@@ -233,7 +258,7 @@ def __init__(
233258
lang='en',
234259
title='Nested diff',
235260
values='repr',
236-
**kwargs # noqa C816
261+
**kwargs,
237262
):
238263
"""Initialize dumper.
239264
@@ -304,7 +329,8 @@ def __init__(self, *args, **kwargs):
304329
self.__val_encoder = nested_diff.cli.JsonDumper(indent=2)
305330
elif values == 'yaml':
306331
self.__val_encoder = nested_diff.cli.YamlDumper(
307-
explicit_start=False)
332+
explicit_start=False,
333+
)
308334

309335
self.generate_value = self.generate_multiline_value
310336

0 commit comments

Comments
 (0)