code: def get_paginator(self, operation_name):
          
          if not self.can_paginate(operation_name):
              raise OperationNotPageableError(operation_name=operation_name)
          else:
              actual_operation_name = self._PY_TO_OP_NAME[operation_name]
              # substitute iterator with async one
              Paginator.PAGE_ITERATOR_CLS = AsyncPageIterator
              paginator = Paginator(
                  getattr(self, operation_name),
                  self._cache['page_config'][actual_operation_name])
              return paginator
docs: 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.