def get_paginator(self, operation_name):
if not self.can_paginate(operation_name):<EOL><INDENT>raise OperationNotPageableError(operation_name=operation_name)<EOL><DEDENT>else:<EOL><INDENT>actual_operation_name = self._PY_TO_OP_NAME[operation_name]<EOL>Paginator.PAGE_ITERATOR_CLS = AsyncPageIterator<EOL>paginator = Paginator(<EOL>getattr(self, operation_name),<EOL>self._cache['<STR_LIT>'][actual_operation_name])<EOL>return paginator<EOL><DEDENT>
Create a paginator for an operation.
        :type operation_name: string
        :param operation_name: The operation name.  This is the same name
            as the method name on the client.  For example, if the
            method name is ``create_foo``, and you'd normally invoke the
            operation as ``client.create_foo(**kwargs)``, if the
            ``create_foo`` operation can be paginated, you can use the
            call ``client.get_paginator("create_foo")``.
        :raise OperationNotPageableError: Raised if the operation is not
            pageable.  You can use the ``client.can_paginate`` method to
            check if an operation is pageable.
        :rtype: L{botocore.paginate.Paginator}
        :return: A paginator object.