@@ -113,19 +113,48 @@ class Rule:
113113
114114@dataclass (frozen = True )
115115class RuleConfig :
116- """Rule configuration.
116+ """A rule configuration.
117117
118118 Args:
119- severity: 0, 1, 2
120-
119+ severity: rule severity, one of `2` (error), `1` (warn), or `0` (off)
120+ args: rule operation arguments.
121+ kwargs: rule operation keyword-arguments.
121122 """
122123
123124 severity : Literal [0 , 1 , 2 ]
125+ """Rule severity."""
126+
124127 args : tuple [Any , ...] = field (default_factory = tuple )
128+ """Rule operation arguments."""
129+
125130 kwargs : dict [str , Any ] = field (default_factory = dict )
131+ """Rule operation keyword-arguments."""
126132
127133 @classmethod
128134 def from_value (cls , value : Any ) -> "RuleConfig" :
135+ """Convert `value` into a `RuleConfig` object.
136+
137+ A rule configuration value can either be a rule _severity_,
138+ or a list where the first element is a rule
139+ _severity_ and subsequent elements are rule arguments:
140+
141+ - _severity_
142+ - `[`_severity_`]`
143+ - `[`_severity_`,` _arg-1 | kwargs_ `]`
144+ - `[`_severity_`,` _arg-1_`,` _arg-2_`,` ...`,` _arg-n | kwargs_`]`
145+
146+ The rule _severity_ is either
147+
148+ - one of `"error"`, `"warn"`, `"off"` or
149+ - one of `2` (error), `1` (warn), `0` (off)
150+
151+ Args:
152+ value: A rule severity or a list where the first element is a rule
153+ severity and subsequent elements are rule arguments.
154+ If the value is already of type `RuleConfig`it is returned as-is.
155+ Returns:
156+ A `RuleConfig` object.
157+ """
129158 if isinstance (value , RuleConfig ):
130159 return value
131160
0 commit comments