'Return a generator for all the points that match the given filters.
:param measurement: The measurement name
:type measurement: str
:param tags: Tags to look for
:type tags: dict
:return: Points generator'

def get_points(self, measurement=None, tags=None):

    if (not isinstance(measurement, (bytes, type(''.decode()), type(None)))):
        raise TypeError(u'measurement    must    be    an    str    or    None')
    for serie in self._get_series():
        serie_name = serie.get(u'measurement', serie.get(u'name', u'results'))
        if (serie_name is None):
            if (tags is None):
                for item in self._get_points_for_serie(serie):
                    (yield item)
        elif (measurement in (None, serie_name)):
            serie_tags = serie.get(u'tags', {})
            if ((tags is None) or self._tag_matches(serie_tags, tags)):
                for item in self._get_points_for_serie(serie):
                    (yield item)
