InfluxDB-Python
===============

.. image:: https://travis-ci.org/influxdata/influxdb-python.svg?branch=master
    :target: https://travis-ci.org/influxdata/influxdb-python
.. image:: https://readthedocs.org/projects/influxdb-python/badge/?version=latest&style
    :target: http://influxdb-python.readthedocs.org/
    :alt: Documentation Status

.. image:: https://img.shields.io/coveralls/influxdata/influxdb-python.svg
  :target: https://coveralls.io/r/influxdata/influxdb-python
  :alt: Coverage

.. image:: https://img.shields.io/pypi/v/influxdb.svg
   :target: https://pypi.python.org/pypi/influxdb
   :alt: PyPI Status

InfluxDB-Python is a client for interacting with InfluxDB_.

Development of this library is maintained by:

+-----------+-------------------------------+ 
| Github ID | URL                           |
+===========+===============================+ 
| @aviau    | (https://github.com/aviau)    |
+-----------+-------------------------------+ 
| @xginn8   | (https://github.com/xginn8)   |
+-----------+-------------------------------+ 
| @sebito91 | (https://github.com/sebito91) |
+-----------+-------------------------------+

.. _readme-about:

InfluxDB is an open-source distributed time series database, find more about InfluxDB_ at https://docs.influxdata.com/influxdb/latest


.. _installation:

InfluxDB pre v1.1.0 users
-------------------------

This module is tested with InfluxDB versions: v1.2.4, v1.3.9, v1.4.3, v1.5.4, v1.6.4, and 1.7.4.

Those users still on InfluxDB v0.8.x users may still use the legacy client by importing ``from influxdb.influxdb08 import InfluxDBClient``.

Installation
------------

Install, upgrade and uninstall influxdb-python with these commands::

    $ pip install influxdb
    $ pip install --upgrade influxdb
    $ pip uninstall influxdb

On Debian/Ubuntu, you can install it with this command::

    $ sudo apt-get install python-influxdb

Dependencies
------------

The influxdb-python distribution is supported and tested on Python 2.7, 3.5, 3.6, 3.7, PyPy and PyPy3.

**Note:** Python <3.5 are currently untested. See ``.travis.yml``.

Main dependency is:

- Requests: HTTP library for human beings (http://docs.python-requests.org/)


Additional dependencies are:

- pandas: for writing from and reading to DataFrames (http://pandas.pydata.org/)
- Sphinx: Tool to create and manage the documentation (http://sphinx-doc.org/)
- Nose: to auto-discover tests (http://nose.readthedocs.org/en/latest/)
- Mock: to mock tests (https://pypi.python.org/pypi/mock)


Documentation
-------------

Documentation is available at https://influxdb-python.readthedocs.io/en/latest/.

You will need Sphinx_ installed to generate the documentation.

The documentation can be generated by running::

    $ tox -e docs


Generated documentation can be found in the *docs/build/html/* directory.


Examples
--------

Here's a basic example (for more see the examples directory)::

    $ python

    >>> from influxdb import InfluxDBClient

    >>> json_body = [
        {
            "measurement": "cpu_load_short",
            "tags": {
                "host": "server01",
                "region": "us-west"
            },
            "time": "2009-11-10T23:00:00Z",
            "fields": {
                "value": 0.64
            }
        }
    ]

    >>> client = InfluxDBClient('localhost', 8086, 'root', 'root', 'example')

    >>> client.create_database('example')

    >>> client.write_points(json_body)

    >>> result = client.query('select value from cpu_load_short;')

    >>> print("Result: {0}".format(result))


Testing
-------

Make sure you have tox by running the following::

    $ pip install tox

To test influxdb-python with multiple version of Python, you can use Tox_::

    $ tox


Support
-------

For issues with, questions about, or feedback for InfluxDB_, please look into
our community page: http://influxdb.com/community/.

We are also lurking on the following:

- #influxdb on irc.freenode.net
- #influxdb on gophers.slack.com


Development
-----------

All development is done on Github_. Use Issues_ to report
problems or submit contributions.

.. _Github: https://github.com/influxdb/influxdb-python/
.. _Issues: https://github.com/influxdb/influxdb-python/issues

Please note that we WILL get to your questions/issues/concerns as quickly as possible. We maintain many
software repositories and sometimes things may get pushed to the backburner. Please don't take offense,
we will do our best to reply as soon as possible!


Source code
-----------

The source code is currently available on Github: https://github.com/influxdata/influxdb-python


TODO
----

The TODO/Roadmap can be found in Github bug tracker: https://github.com/influxdata/influxdb-python/issues


.. _InfluxDB: https://influxdata.com/time-series-platform/influxdb/
.. _Sphinx: http://sphinx.pocoo.org/
.. _Tox: https://tox.readthedocs.org
