code: def list_series(self, keys=None, tags=None, attrs=None,
                      limit=1000):
          
  
          params = {
              'key': keys,
              'tag': tags,
              'attr': attrs,
              'limit': limit
          }
          url_args = endpoint.make_url_args(params)
          url = '?'.join([endpoint.SERIES_ENDPOINT, url_args])
          resp = self.session.get(url)
          return resp
docs: Get a list of all series matching the given criteria.
  
          **Note:** for the key argument, the filter will return the *union* of
          those values.  For the tag and attr arguments, the filter will return
          the *intersection* of those values.
  
          :param keys: filter by one or more series keys
          :type keys: list or string
          :param tags: filter by one or more tags
          :type tags: list or string
          :param dict attrs: filter by one or more key-value attributes
          :rtype: :class:`tempodb.protocol.cursor.SeriesCursor` with an
                  iterator over :class:`tempodb.protocol.objects.Series`
                  objects