Hide navigation sidebar
Hide table of contents sidebar
Back to top
Toggle table of contents sidebar

# `cloup.constraints._conditional`

This modules contains classes for creating conditional constraints.

## Classes

`If`(condition, then[, else_]) | Checks one constraint or another depending on the truth value of the condition.

## Functions

`as_predicate`(arg) |

## Contents

cloup.constraints._conditional.as_predicate(arg)
  Parameters:

    arg (str | Sequence[str] | Predicate) –

  Return type:

    Predicate

class cloup.constraints._conditional.If(condition, then, else_=None)

  Bases: `cloup.constraints._core.Constraint`

  Checks one constraint or another depending on the truth value of the condition.

  New in version 0.8.0: you can now pass a sequence of parameter names as condition, which corresponds to the predicate `AllSet(*param_names)`.

  Parameters:

    - condition (str | Sequence[str] | Predicate) – can be either an instance of `Predicate` or (more often) the name of a parameter or a list/tuple of parameters that must be all set for the condition to be true.

    - then (Constraint) – a constraint checked if the condition is true.

    - else – an (optional) constraint checked if the condition is false.

    - else_ (Constraint | None) –

  help(ctx)

    A description of the constraint.

    Parameters:

      ctx (click.Context) –

    Return type:

      str

  check_consistency(params)

    Perform some sanity checks that detect inconsistencies between these 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 (setting `check_constraints_consistency=False` in `context_settings`)

    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(params, ctx)

    Check 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` instances

      - ctx (click.Context) – `click.Context`

    Raises:

      `ConstraintViolated`

    Return type:

      None

  __repr__()

    Return repr(self).

    Return type:

      str