cloup.constraints._conditional
¶
This modules contains classes to create conditional constraints.
Classes¶
|
Checks one constraint or another depending on the truth value of the condition. |
Functions¶
|
Contents¶
-
cloup.constraints._conditional.
as_predicate
(arg)[source]¶ - Parameters
arg (Union[str, Sequence[str], cloup.constraints.conditions.Predicate]) –
- Return type
-
class
cloup.constraints._conditional.
If
(condition, then, else_=None)[source]¶ Bases:
cloup.constraints._core.Constraint
A constraint that can be checked against an arbitrary collection of CLI parameters with respect to a specific
click.Context
(which contains the values assigned to the parameters inctx.params
).- Parameters
condition (Union[str, Sequence[str], cloup.constraints.conditions.Predicate]) –
then (cloup.constraints._core.Constraint) –
else_ (Optional[cloup.constraints._core.Constraint]) –
-
help
(self, ctx)[source]¶ A description of the constraint.
- Parameters
ctx (click.Context) –
- Return type
-
check_consistency
(self, params)[source]¶ Performs some sanity checks that detect inconsistencies between this constraints and the properties of the input parameters (e.g. required).
For example, a constraint that requires the parameters to be mutually exclusive is not consistent with a group of parameters with multiple required options.
These sanity checks are meant to catch developer’s mistakes and don’t depend on the values assigned to the parameters; therefore:
they can be performed before any parameter parsing
they can be disabled in production (see
toggle_consistency_checks()
)
- Parameters
params (Sequence[click.Parameter]) – list of
click.Parameter
instances- Raises
UnsatisfiableConstraint
if the constraint cannot be satisfied independently from the values provided by the user- Return type
-
check_values
(self, params, ctx)[source]¶ Checks that the constraint is satisfied by the input parameters in the given context, which (among other things) contains the values assigned to the parameters in
ctx.params
.You probably don’t want to call this method directly. Use
check()
instead.- Parameters
params (Sequence[click.Parameter]) – list of
click.Parameter
instancesctx (click.Context) –
click.Context
- Raises