Get components

        :param component_id: Component ID (optional)
        :return: Components data (:class:`Generator`)

        Additional named arguments may be passed and are directly transmitted
        to API. It is useful to use the API search features.

        .. seealso:: https://docs.cachethq.io/reference#get-components
        .. seealso:: https://docs.cachethq.io/docs/advanced-api-usage

def get(self, component_id=None, **kwargs):
        """Get components

        :param component_id: Component ID (optional)
        :return: Components data (:class:`Generator`)

        Additional named arguments may be passed and are directly transmitted
        to API. It is useful to use the API search features.

        .. seealso:: https://docs.cachethq.io/reference#get-components
        .. seealso:: https://docs.cachethq.io/docs/advanced-api-usage
        """
        path = 'components'
        if component_id is not None:
            path += '/%s' % component_id
        return self.paginate_get(path, data=kwargs)