Skip to content

Commit 47ac87e

Browse files
authored
fix: Fix fatal attribute error when running Robocop (#1698)
The issue was caused by recent import fix.
1 parent 3568496 commit 47ac87e

1 file changed

Lines changed: 44 additions & 45 deletions

File tree

src/robocop/run.py

Lines changed: 44 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,8 @@
66
import typer
77
from rich.console import Console
88

9-
from robocop import __version__, config
10-
from robocop.config import defaults
11-
from robocop.config.parser import compile_rule_pattern
9+
from robocop import __version__
10+
from robocop.config import defaults, manager, parser, schema
1211
from robocop.formatter.runner import RobocopFormatter
1312
from robocop.linter import rules_list
1413
from robocop.linter.diagnostics import Diagnostic
@@ -203,15 +202,15 @@ def list_commands(self, ctx: click.Context) -> list[str]: # noqa: ARG002
203202
),
204203
]
205204
linter_target_version_option = Annotated[
206-
config.parser.TargetVersion | None,
205+
parser.TargetVersion | None,
207206
typer.Option(
208207
case_sensitive=False,
209208
help="Enable only rules supported by configured version",
210209
rich_help_panel="Selecting rules",
211210
),
212211
]
213212
formatter_target_version = Annotated[
214-
config.parser.TargetVersion | None,
213+
parser.TargetVersion | None,
215214
typer.Option(
216215
case_sensitive=False,
217216
help="Enable only formatters supported by configured version",
@@ -225,7 +224,7 @@ def list_commands(self, ctx: click.Context) -> list[str]: # noqa: ARG002
225224
"-t",
226225
help="Disable rules below given threshold",
227226
show_default=RuleSeverity.INFO.value,
228-
parser=config.parser.parse_rule_severity,
227+
parser=parser.parse_rule_severity,
229228
metavar="I/W/E",
230229
rich_help_panel="Selecting rules",
231230
),
@@ -360,10 +359,10 @@ def check_files(
360359
if not reports:
361360
reports = []
362361
reports.append("gitlab")
363-
file_filters = config.schema.RawFileFiltersOptions(
362+
file_filters = schema.RawFileFiltersOptions(
364363
include=include, default_include=default_include, exclude=exclude, default_exclude=default_exclude
365364
)
366-
linter_config = config.schema.RawLinterConfig(
365+
linter_config = schema.RawLinterConfig(
367366
configure=configure,
368367
select=select,
369368
extend_select=extend_select,
@@ -382,8 +381,8 @@ def check_files(
382381
unsafe_fixes=unsafe_fixes,
383382
diff=diff,
384383
)
385-
cache_config = config.schema.RawCacheConfig(enabled=cache, cache_dir=cache_dir)
386-
overwrite_config = config.schema.RawConfig(
384+
cache_config = schema.RawCacheConfig(enabled=cache, cache_dir=cache_dir)
385+
overwrite_config = schema.RawConfig(
387386
linter=linter_config,
388387
formatter=None,
389388
file_filters=file_filters,
@@ -393,7 +392,7 @@ def check_files(
393392
verbose=verbose,
394393
target_version=target_version,
395394
)
396-
manager = config.manager.ConfigManager(
395+
config_manager = manager.ConfigManager(
397396
sources=sources,
398397
config=configuration_file,
399398
root=root,
@@ -404,8 +403,8 @@ def check_files(
404403
overwrite_config=overwrite_config,
405404
)
406405
if clear_cache:
407-
manager.cache.invalidate_all()
408-
runner = RobocopLinter(manager)
406+
config_manager.cache.invalidate_all()
407+
runner = RobocopLinter(config_manager)
409408
return runner.run()
410409

411410

@@ -483,7 +482,7 @@ def check_project(
483482
if not reports:
484483
reports = []
485484
reports.append("gitlab")
486-
linter_config = config.schema.RawLinterConfig(
485+
linter_config = schema.RawLinterConfig(
487486
configure=configure,
488487
select=select,
489488
extend_select=extend_select,
@@ -497,10 +496,10 @@ def check_project(
497496
exit_zero=exit_zero,
498497
return_result=return_result,
499498
)
500-
file_filters = config.schema.RawFileFiltersOptions(
499+
file_filters = schema.RawFileFiltersOptions(
501500
include=include, default_include=default_include, exclude=exclude, default_exclude=default_exclude
502501
)
503-
overwrite_config = config.schema.RawConfig(
502+
overwrite_config = schema.RawConfig(
504503
linter=linter_config,
505504
formatter=None,
506505
file_filters=file_filters,
@@ -509,7 +508,7 @@ def check_project(
509508
silent=silent,
510509
target_version=target_version,
511510
)
512-
manager = config.manager.ConfigManager(
511+
config_manager = manager.ConfigManager(
513512
sources=sources,
514513
config=configuration_file,
515514
root=root,
@@ -519,7 +518,7 @@ def check_project(
519518
force_exclude=force_exclude,
520519
overwrite_config=overwrite_config,
521520
)
522-
runner = RobocopLinter(manager)
521+
runner = RobocopLinter(config_manager)
523522
return runner.run_project_checks()
524523

525524

@@ -687,21 +686,21 @@ def format_files(
687686
] = False,
688687
) -> int:
689688
"""Format Robot Framework files."""
690-
whitespace_config = config.schema.RawWhitespaceConfig(
689+
whitespace_config = schema.RawWhitespaceConfig(
691690
space_count=space_count,
692691
indent=indent,
693692
continuation_indent=continuation_indent,
694693
line_ending=line_ending,
695694
separator=separator,
696695
line_length=line_length,
697696
)
698-
skip_config = config.schema.RawSkipConfig(
697+
skip_config = schema.RawSkipConfig(
699698
skip=set(skip) if skip else None,
700699
keyword_call=set(skip_keyword_call) if skip_keyword_call else None,
701700
keyword_call_pattern=set(skip_keyword_call_pattern) if skip_keyword_call_pattern else None,
702701
sections=set(skip_sections) if skip_sections else None,
703702
)
704-
formatter_config = config.schema.RawFormatterConfig(
703+
formatter_config = schema.RawFormatterConfig(
705704
select=select,
706705
extend_select=extend_select,
707706
force_order=force_order,
@@ -718,11 +717,11 @@ def format_files(
718717
reruns=reruns,
719718
return_result=return_result,
720719
)
721-
file_filters = config.schema.RawFileFiltersOptions(
720+
file_filters = schema.RawFileFiltersOptions(
722721
include=include, default_include=default_include, exclude=exclude, default_exclude=default_exclude
723722
)
724-
cache_config = config.schema.RawCacheConfig(enabled=cache, cache_dir=cache_dir)
725-
overwrite_config = config.schema.RawConfig(
723+
cache_config = schema.RawCacheConfig(enabled=cache, cache_dir=cache_dir)
724+
overwrite_config = schema.RawConfig(
726725
formatter=formatter_config,
727726
language=language,
728727
file_filters=file_filters,
@@ -731,7 +730,7 @@ def format_files(
731730
silent=silent,
732731
target_version=target_version,
733732
)
734-
manager = config.manager.ConfigManager(
733+
config_manager = manager.ConfigManager(
735734
sources=sources,
736735
config=configuration_file,
737736
root=root,
@@ -742,8 +741,8 @@ def format_files(
742741
overwrite_config=overwrite_config,
743742
)
744743
if clear_cache:
745-
manager.cache.invalidate_all()
746-
runner = RobocopFormatter(manager)
744+
config_manager.cache.invalidate_all()
745+
runner = RobocopFormatter(config_manager)
747746
return runner.run()
748747

749748

@@ -780,29 +779,29 @@ def list_rules(
780779
"""
781780
# TODO: rich support (colorized enabled, severity etc)
782781
console = Console(soft_wrap=True)
783-
overwrite_config = config.schema.RawConfig(
782+
overwrite_config = schema.RawConfig(
784783
silent=silent,
785784
target_version=target_version,
786785
)
787-
manager = config.manager.ConfigManager(overwrite_config=overwrite_config)
786+
config_manager = manager.ConfigManager(overwrite_config=overwrite_config)
788787
resolver = ConfigResolver(load_rules=True)
789-
resolved_config = resolver.resolve_config(manager.default_config)
788+
resolved_config = resolver.resolve_config(config_manager.default_config)
790789
if filter_pattern:
791-
compiled_pattern = compile_rule_pattern(filter_pattern)
790+
compiled_pattern = parser.compile_rule_pattern(filter_pattern)
792791
rules = rules_list.filter_rules_by_pattern(resolved_config.rules, compiled_pattern)
793792
else:
794793
rules = rules_list.filter_rules_by_category(
795-
resolved_config.rules, filter_category, manager.default_config.linter.target_version
794+
resolved_config.rules, filter_category, config_manager.default_config.linter.target_version
796795
)
797796
if with_fix:
798797
rules = rules_list.filter_rules_by_fixability(rules)
799798
severity_counter = {"E": 0, "W": 0, "I": 0}
800799
enabled = 0
801800
for rule in rules:
802-
rule.enabled = rule.enabled and not rule.is_disabled(manager.default_config.linter.target_version)
801+
rule.enabled = rule.enabled and not rule.is_disabled(config_manager.default_config.linter.target_version)
803802
enabled += int(rule.enabled)
804803
if not silent:
805-
console.print(rule.rule_short_description(manager.default_config.linter.target_version))
804+
console.print(rule.rule_short_description(config_manager.default_config.linter.target_version))
806805
severity_counter[rule.severity.value] += 1
807806
configurable_rules_sum = sum(severity_counter.values())
808807
plural = get_plural_form(configurable_rules_sum)
@@ -838,10 +837,10 @@ def list_reports(
838837
) -> None:
839838
"""List available reports."""
840839
console = Console(soft_wrap=True)
841-
linter_config = config.schema.RawLinterConfig(reports=reports)
842-
overwrite_config = config.schema.RawConfig(linter=linter_config, silent=silent)
843-
manager = config.manager.ConfigManager(overwrite_config=overwrite_config)
844-
runner = RobocopLinter(manager)
840+
linter_config = schema.RawLinterConfig(reports=reports)
841+
overwrite_config = schema.RawConfig(linter=linter_config, silent=silent)
842+
config_manager = manager.ConfigManager(overwrite_config=overwrite_config)
843+
runner = RobocopLinter(config_manager)
845844
if not silent:
846845
console.print(print_reports(runner.reports, enabled)) # TODO: color etc
847846

@@ -858,12 +857,12 @@ def list_formatters(
858857
from rich.table import Table # noqa: PLC0415
859858

860859
console = Console(soft_wrap=True)
861-
overwrite_config = config.schema.RawConfig(
862-
silent=silent, target_version=target_version, formatter=config.schema.RawFormatterConfig(allow_disabled=True)
860+
overwrite_config = schema.RawConfig(
861+
silent=silent, target_version=target_version, formatter=schema.RawFormatterConfig(allow_disabled=True)
863862
)
864-
manager = config.manager.ConfigManager(overwrite_config=overwrite_config)
863+
config_manager = manager.ConfigManager(overwrite_config=overwrite_config)
865864
resolver = ConfigResolver(load_rules=True, load_formatters=True)
866-
resolved_config = resolver.resolve_config(manager.default_config)
865+
resolved_config = resolver.resolve_config(config_manager.default_config)
867866

868867
if filter_category == filter_category.ALL:
869868
formatters = list(resolved_config.formatters.values())
@@ -894,15 +893,15 @@ def print_resource_documentation(name: Annotated[str, typer.Argument(help="Rule
894893
"""Print formatter, rule or report documentation."""
895894
# TODO load external from cli
896895
console = Console(soft_wrap=True)
897-
manager = config.manager.ConfigManager()
896+
config_manager = manager.ConfigManager()
898897
resolver = ConfigResolver(load_rules=True, load_formatters=True)
899-
resolved_config = resolver.resolve_config(manager.default_config)
898+
resolved_config = resolver.resolve_config(config_manager.default_config)
900899

901900
if name in resolved_config.rules:
902901
console.print(resolved_config.rules[name].description_with_configurables)
903902
return
904903

905-
reports = load_reports(manager.default_config)
904+
reports = load_reports(config_manager.default_config)
906905
if name in reports:
907906
docs = textwrap.dedent(str(reports[name].__doc__))
908907
console.print(docs)

0 commit comments

Comments
 (0)