def __init__(self, connection, channel_id=None, auto_decode=True):
if channel_id:<EOL><INDENT>connection._claim_channel_id(channel_id)<EOL><DEDENT>else:<EOL><INDENT>channel_id = connection._get_free_channel_id()<EOL><DEDENT>AMQP_LOGGER.debug('<STR_LIT>', channel_id)<EOL>super(Channel, self).__init__(connection, channel_id)<EOL>self.is_open = False<EOL>self.active = True  <EOL>self.returned_messages = Queue()<EOL>self.callbacks = {}<EOL>self.cancel_callbacks = {}<EOL>self.auto_decode = auto_decode<EOL>self.events = defaultdict(set)<EOL>self.no_ack_consumers = set()<EOL>self._confirm_selected = False<EOL>if self.connection.confirm_publish:<EOL><INDENT>self.basic_publish = self.basic_publish_confirm<EOL><DEDENT>self._x_open()<EOL>
Create a channel bound to a connection and using the specified
        numeric channel_id, and open on the server.

        The 'auto_decode' parameter (defaults to True), indicates
        whether the library should attempt to decode the body
        of Messages to a Unicode string if there's a 'content_encoding'
        property for the message.  If there's no 'content_encoding'
        property, or the decode raises an Exception, the message body
        is left as plain bytes.