def __init__(self, key, value=NO_ARG, type_=None,
                 unique=False, required=NO_ARG,
                 quote=None, callable_=None,
                 isoutparam=False,
                 _compared_to_operator=None,
                 _compared_to_type=None):
        if isinstance(key, ColumnClause):
            type_ = key.type
            key = key.name
        if required is NO_ARG:
            required = (value is NO_ARG and callable_ is None)
        if value is NO_ARG:
            value = None

        if quote is not None:
            key = quoted_name(key, quote)

        if unique:
            self.key = _anonymous_label('%%(%d %s)s' % (id(self), key
                                                        or 'param'))
        else:
            self.key = key or _anonymous_label('%%(%d param)s'
                                               % id(self))

        # identifying key that won't change across
        # clones, used to identify the bind's logical
        # identity
        self._identifying_key = self.key

        # key that was passed in the first place, used to
        # generate new keys
        self._orig_key = key or 'param'

        self.unique = unique
        self.value = value
        self.callable = callable_
        self.isoutparam = isoutparam
        self.required = required
        if type_ is None:
            if _compared_to_type is not None:
                self.type = \
                    _compared_to_type.coerce_compared_value(
                        _compared_to_operator, value)
            else:
                self.type = type_api._type_map.get(type(value),
                                                   type_api.NULLTYPE)
        elif isinstance(type_, type):
            self.type = type_()
        else:
            self.type = type_
Produce a "bound expression".
dataset/ETHPy150Open goFrendiAsgard/kokoropy/kokoropy/packages/sqlalchemy/sql/elements.py/BindParameter.__init__