cloup.constraints._conditional

This modules contains classes to create conditional constraints.

Classes

If(condition, then[, else_])

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

cloup.constraints.conditions.Predicate

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 in ctx.params).

Parameters
help(self, ctx)[source]

A description of the constraint.

Parameters

ctx (click.Context) –

Return type

str

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

None

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
Raises

ConstraintViolated

__repr__(self)[source]

Return repr(self).

Return type

str