Skip to content

Commit 47b6aa2

Browse files
committed
fix: resolve ruff linting errors (exception chaining and line length)
1 parent c2d50ea commit 47b6aa2

2 files changed

Lines changed: 30 additions & 19 deletions

File tree

src/hier_config_cli/__main__.py

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -125,38 +125,42 @@ def process_configs(
125125
raise click.ClickException(
126126
f"Unknown platform: {platform_str}. "
127127
f"Use 'list-platforms' to see available platforms."
128-
)
128+
) from None
129129

130130
try:
131131
logger.info(f"Reading running config from: {running_config_path}")
132132
running_config_text = read_text_from_file(running_config_path)
133133
except FileNotFoundError:
134-
raise click.ClickException(f"Running config file not found: {running_config_path}")
134+
raise click.ClickException(
135+
f"Running config file not found: {running_config_path}"
136+
) from None
135137
except PermissionError:
136138
raise click.ClickException(
137139
f"Permission denied reading running config: {running_config_path}"
138-
)
140+
) from None
139141
except Exception as e:
140-
raise click.ClickException(f"Error reading running config: {e}")
142+
raise click.ClickException(f"Error reading running config: {e}") from e
141143

142144
try:
143145
logger.info(f"Reading generated config from: {generated_config_path}")
144146
generated_config_text = read_text_from_file(generated_config_path)
145147
except FileNotFoundError:
146-
raise click.ClickException(f"Generated config file not found: {generated_config_path}")
148+
raise click.ClickException(
149+
f"Generated config file not found: {generated_config_path}"
150+
) from None
147151
except PermissionError:
148152
raise click.ClickException(
149153
f"Permission denied reading generated config: {generated_config_path}"
150-
)
154+
) from None
151155
except Exception as e:
152-
raise click.ClickException(f"Error reading generated config: {e}")
156+
raise click.ClickException(f"Error reading generated config: {e}") from e
153157

154158
try:
155159
logger.info("Parsing configurations")
156160
running_hconfig = get_hconfig(platform_enum, running_config_text)
157161
generated_hconfig = get_hconfig(platform_enum, generated_config_text)
158162
except Exception as e:
159-
raise click.ClickException(f"Error parsing configuration: {e}")
163+
raise click.ClickException(f"Error parsing configuration: {e}") from e
160164

161165
try:
162166
logger.info(f"Generating {operation} configuration")
@@ -170,7 +174,7 @@ def process_configs(
170174
else workflow.rollback_config
171175
)
172176
except Exception as e:
173-
raise click.ClickException(f"Error generating {operation}: {e}")
177+
raise click.ClickException(f"Error generating {operation}: {e}") from e
174178

175179
return result, platform_enum
176180

@@ -248,7 +252,8 @@ def remediation(
248252
generated config.
249253
250254
Example:
251-
hier-config-cli remediation --platform ios --running-config running.conf --generated-config intended.conf
255+
hier-config-cli remediation --platform ios \\
256+
--running-config running.conf --generated-config intended.conf
252257
"""
253258
result, platform_enum = process_configs(
254259
platform, running_config, generated_config, "remediation"
@@ -257,14 +262,14 @@ def remediation(
257262
try:
258263
output = format_output(result, platform_enum, output_format)
259264
except ValueError as e:
260-
raise click.ClickException(str(e))
265+
raise click.ClickException(str(e)) from e
261266

262267
if output_file:
263268
try:
264269
Path(output_file).write_text(output)
265270
click.echo(f"Remediation configuration written to: {output_file}", err=True)
266271
except Exception as e:
267-
raise click.ClickException(f"Error writing output file: {e}")
272+
raise click.ClickException(f"Error writing output file: {e}") from e
268273
else:
269274
click.echo("\n=== Remediation Configuration ===")
270275
click.echo(output)
@@ -286,21 +291,22 @@ def rollback(
286291
procedures before making changes.
287292
288293
Example:
289-
hier-config-cli rollback --platform ios --running-config running.conf --generated-config intended.conf
294+
hier-config-cli rollback --platform ios \\
295+
--running-config running.conf --generated-config intended.conf
290296
"""
291297
result, platform_enum = process_configs(platform, running_config, generated_config, "rollback")
292298

293299
try:
294300
output = format_output(result, platform_enum, output_format)
295301
except ValueError as e:
296-
raise click.ClickException(str(e))
302+
raise click.ClickException(str(e)) from e
297303

298304
if output_file:
299305
try:
300306
Path(output_file).write_text(output)
301307
click.echo(f"Rollback configuration written to: {output_file}", err=True)
302308
except Exception as e:
303-
raise click.ClickException(f"Error writing output file: {e}")
309+
raise click.ClickException(f"Error writing output file: {e}") from e
304310
else:
305311
click.echo("\n=== Rollback Configuration ===")
306312
click.echo(output)
@@ -321,21 +327,22 @@ def future(
321327
the generated configuration to the running configuration.
322328
323329
Example:
324-
hier-config-cli future --platform ios --running-config running.conf --generated-config intended.conf
330+
hier-config-cli future --platform ios \\
331+
--running-config running.conf --generated-config intended.conf
325332
"""
326333
result, platform_enum = process_configs(platform, running_config, generated_config, "future")
327334

328335
try:
329336
output = format_output(result, platform_enum, output_format)
330337
except ValueError as e:
331-
raise click.ClickException(str(e))
338+
raise click.ClickException(str(e)) from e
332339

333340
if output_file:
334341
try:
335342
Path(output_file).write_text(output)
336343
click.echo(f"Future configuration written to: {output_file}", err=True)
337344
except Exception as e:
338-
raise click.ClickException(f"Error writing output file: {e}")
345+
raise click.ClickException(f"Error writing output file: {e}") from e
339346
else:
340347
click.echo("\n=== Future Configuration ===")
341348
click.echo(output)

tests/test_cli.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,11 @@ def mock_generated_config(tmp_path: Path) -> str:
4040
"""
4141
config_path = tmp_path / "generated_config.conf"
4242
config_path.write_text(
43-
"hostname test-router-updated\ninterface Vlan1\n ip address 10.0.0.1 255.255.255.0\ninterface Vlan2\n ip address 10.0.1.1 255.255.255.0\n"
43+
"hostname test-router-updated\n"
44+
"interface Vlan1\n"
45+
" ip address 10.0.0.1 255.255.255.0\n"
46+
"interface Vlan2\n"
47+
" ip address 10.0.1.1 255.255.255.0\n"
4448
)
4549
return str(config_path)
4650

0 commit comments

Comments
 (0)