@@ -30,13 +30,16 @@ class RuleConfig(BaseModel):
3030 unmanaged_ignored: Unmanaged ignored rules.
3131 tests_unmanaged_ignored: Unmanaged cases of rules ignored for specifically the
3232 tests directory.
33+ nontests_unmanaged_ignored: Unmanaged cases of rules ignored for specifically
34+ non-test directories (using !tests/**/*.py glob).
3335 """
3436
3537 selected : list [Rule ] = Field (default_factory = list )
3638 ignored : list [Rule ] = Field (default_factory = list )
3739 unmanaged_selected : list [Rule ] = Field (default_factory = list )
3840 unmanaged_ignored : list [Rule ] = Field (default_factory = list )
3941 tests_unmanaged_ignored : list [Rule ] = Field (default_factory = list )
42+ nontests_unmanaged_ignored : list [Rule ] = Field (default_factory = list )
4043
4144 def get_all_selected (self ) -> list [Rule ]:
4245 """Get all (project-scope) selected rules."""
@@ -68,12 +71,13 @@ def empty(self) -> bool:
6871 and not self .unmanaged_selected
6972 and not self .unmanaged_ignored
7073 and not self .tests_unmanaged_ignored
74+ and not self .nontests_unmanaged_ignored
7175 )
7276
7377 @property
7478 def is_related_to_tests (self ) -> bool :
7579 """Check if the rule config has any tests-related rules."""
76- return bool (self .tests_unmanaged_ignored )
80+ return bool (self .tests_unmanaged_ignored or self . nontests_unmanaged_ignored )
7781
7882 def __repr__ (self ) -> str :
7983 """Representation which omits empty-list fields."""
@@ -88,6 +92,8 @@ def __repr__(self) -> str:
8892 args .append (f"unmanaged_ignored={ self .unmanaged_ignored } " )
8993 if self .tests_unmanaged_ignored :
9094 args .append (f"tests_unmanaged_ignored={ self .tests_unmanaged_ignored } " )
95+ if self .nontests_unmanaged_ignored :
96+ args .append (f"nontests_unmanaged_ignored={ self .nontests_unmanaged_ignored } " )
9197 arg_str = ", " .join (args )
9298 return f"RuleConfig({ arg_str } )"
9399
@@ -115,4 +121,7 @@ def __or__(self, other: Self) -> Self:
115121 new .tests_unmanaged_ignored = (
116122 self .tests_unmanaged_ignored + other .tests_unmanaged_ignored
117123 )
124+ new .nontests_unmanaged_ignored = (
125+ self .nontests_unmanaged_ignored + other .nontests_unmanaged_ignored
126+ )
118127 return new
0 commit comments