RobotPy NetworkTables Project
=============================

.. image:: https://travis-ci.org/robotpy/pynetworktables.svg
    :target: https://travis-ci.org/robotpy/pynetworktables

A pure python implementation of NetworkTables, originally derived from the
java implementation.  NetworkTables are used to pass non-Driver
Station data to and from the robot across the network.

This implementation is intended to be compatible with python 2.7 and 3.4. All
commits to the repository are automatically tested on all supported python
versions using Travis-CI.

.. note:: NetworkTables is a protocol used for robot communication in the
          FIRST Robotics Competition, and can be used to talk to
          SmartDashboard/SFX. It does not have any security, and should never
          be used on untrusted networks.

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

For usage, detailed installation information, and other notes, please see
our documentation at http://pynetworktables.readthedocs.org/en/latest/

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

On the RoboRIO, you don't install this directly, but use the RobotPy installer
to install it on your RoboRIO, or it is installed by pip as part of the
pyfrc setup process.

On something like a coprocessor, driver station, or laptop, make sure pip is
installed, connect to the internet, and install like so:

::

    pip install pynetworktables


Implementation differences as of 2015
-------------------------------------

* Implementation is pure python, no SIP compilation required!
* API is now based on the Java implementation, methods are
  now camelCase, instead of CapsCase
* NetworkTables objects are found in the networktables package, and
  not in the pynetworktables package

Support
-------

The RobotPy project has a mailing list that you can send emails to for
support: robotpy@googlegroups.com. Keep in mind that the maintainers of
RobotPy projects are also members of FRC Teams and do this in their free
time.

If you find a bug, please file a bug report using github
https://github.com/robotpy/pynetworktables/issues/new

Contributing new changes
------------------------

RobotPy is an open project that all members of the FIRST community can
easily and quickly contribute to. If you find a bug, or have an idea that you
think others can use:

1. `Fork this git repository <https://github.com/robotpy/pynetworktables/fork>`_ to your github account
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push -u origin my-new-feature`)
5. Create new Pull Request on github

Authors & Contributors
======================

* Peter Johnson, FRC Team 294
* Dustin Spicuzza, FRC Team 1418/2423


