(
        self,
        what,
        where,
        *args,
        label_input=None,
        label_output=None,
        **kwargs,
    )
Args:
          next_conversion (object): to be wrapped with
            :py:obj:`ensure_conversion` and called if callable is passed
          args (tuple): to be wrapped with :py:obj:`ensure_conversion` and
            passed to `next_conversion` if it's callable
          kwargs (dict): to be wrapped with :py:obj:`ensure_conversion` and
            passed to `next_conversion` if it's callable
          label_input (str or dict): Labels to be put on pipe input data.
            If a ``str`` is passed, then it is used as a label name.
            If a ``dict`` is passed, keys are label names, values
            are conversions to be applied before labeling.
          label_output (str or dict): Labels to be put on pipe output data.
            The rest is all the same as with ``label_input``
def __init__(
        self,
        what,
        where,
        *args,
        label_input=None,
        label_output=None,
        **kwargs,
    ):
        """

        Args:
          next_conversion (object): to be wrapped with
            :py:obj:`ensure_conversion` and called if callable is passed
          args (tuple): to be wrapped with :py:obj:`ensure_conversion` and
            passed to `next_conversion` if it's callable
          kwargs (dict): to be wrapped with :py:obj:`ensure_conversion` and
            passed to `next_conversion` if it's callable
          label_input (str or dict): Labels to be put on pipe input data.
            If a ``str`` is passed, then it is used as a label name.
            If a ``dict`` is passed, keys are label names, values
            are conversions to be applied before labeling.
          label_output (str or dict): Labels to be put on pipe output data.
            The rest is all the same as with ``label_input``
        """
        super().__init__()
        if (
            CodeGenerationOptionsCtx.get_option_value("inline_pipes_only")
        ) and (label_input or label_output):
            raise AssertionError(
                "inline pipes requested: no labeling is supported"
            )

        self.what = self.ensure_conversion(what)
        self.where = self.ensure_conversion(where)
        self.where.check_dependency(self.what, for_piping=True)

        if (
            (self.what.contents & self.ContentTypes.NEW_LABEL) or label_input
        ) and (self.where.contents & self.ContentTypes.REDUCER):
            raise ValueError("labeling of reducer inputs is not supported")

        if not self.where.valid_pipe_output:
            raise ValueError("invalid output, check where conversion")

        self.replace_where_with_called_one = self.where.is_itself_callable()
        if not self.replace_where_with_called_one and (args or kwargs):
            raise AssertionError(
                "args or kwargs won't be used when 'where' is not callable"
            )

        self.args = tuple(self.ensure_conversion(arg) for arg in args)
        self.kwargs = {k: self.ensure_conversion(v) for k, v in kwargs.items()}
        self.label_input = (
            None if label_input is None else self._prepare_labels(label_input)
        )
        self.label_output = (
            None
            if label_output is None
            else self._prepare_labels(label_output)
        )
        if self.label_input or self.label_output:
            self.self_content_type |= self.ContentTypes.NEW_LABEL
            self.contents |= self.self_content_type
def __init__ ( self , what , where , * args , label_input = None , label_output = None , * * kwargs , ) : super ( ) . __init__ ( ) if ( CodeGenerationOptionsCtx . get_option_value ( "inline_pipes_only" ) ) and ( label_input or label_output ) : raise AssertionError ( "inline pipes requested: no labeling is supported" ) self . what = self . ensure_conversion ( what ) self . where = self . ensure_conversion ( where ) self . where . check_dependency ( self . what , for_piping = True ) if ( ( self . what . contents & self . ContentTypes . NEW_LABEL ) or label_input ) and ( self . where . contents & self . ContentTypes . REDUCER ) : raise ValueError ( "labeling of reducer inputs is not supported" ) if not self . where . valid_pipe_output : raise ValueError ( "invalid output, check where conversion" ) self . replace_where_with_called_one = self . where . is_itself_callable ( ) if not self . replace_where_with_called_one and ( args or kwargs ) : raise AssertionError ( "args or kwargs won't be used when 'where' is not callable" ) self . args = tuple ( self . ensure_conversion ( arg ) for arg in args ) self . kwargs = { k : self . ensure_conversion ( v ) for k , v in kwargs . items ( ) } self . label_input = ( None if label_input is None else self . _prepare_labels ( label_input ) ) self . label_output = ( None if label_output is None else self . _prepare_labels ( label_output ) ) if self . label_input or self . label_output : self . self_content_type |= self . ContentTypes . NEW_LABEL self . contents |= self . self_content_type