'Write to multiple time series names.
:param points: the list of points to be written in the database
:type points: list of dictionaries, each dictionary represents a point
:type points: (if protocol is \'json\') list of dicts, where each dict
represents a point.
(if protocol is \'line\') sequence of line protocol strings.
:param time_precision: Either \'s\', \'m\', \'ms\' or \'u\', defaults to None
:type time_precision: str
:param database: the database to write the points to. Defaults to
the client\'s current database
:type database: str
:param tags: a set of key-value pairs associated with each point. Both
keys and values must be strings. These are shared tags and will be
merged with point-specific tags, defaults to None
:type tags: dict
:param retention_policy: the retention policy for the points. Defaults
to None
:type retention_policy: str
:param batch_size: value to write the points in batches
instead of all at one time. Useful for when doing data dumps from
one database to another or when doing a massive write operation,
defaults to None
:type batch_size: int
:param protocol: Protocol for writing data. Either \'line\' or \'json\'.
:type protocol: str
:returns: True, if the operation is successful
:rtype: bool
.. note:: if no retention policy is specified, the default retention
policy for the database is used'

def write_points(self, points, time_precision=None, database=None, retention_policy=None, tags=None, batch_size=None, protocol=u'json'):

    if (batch_size and (batch_size > 0)):
        for batch in self._batches(points, batch_size):
            self._write_points(points=batch, time_precision=time_precision, database=database, retention_policy=retention_policy, tags=tags, protocol=protocol)
        return True
    return self._write_points(points=points, time_precision=time_precision, database=database, retention_policy=retention_policy, tags=tags, protocol=protocol)
