This package provides an object-oriented interface to the Comedi_
drivers.  The standard Python interface bundled with Comedilib is a
simple SWIG clone of the C interface.  In pycomedi, we convert the
functions into class methods (see `pycomedi.classes`), so you don't
have to worry about dragging around opaque types like `comedi_t *`
device pointers.  We also bundle related constants together in
`_Enums` and `_Flags` (see `pycomedi.constants`), to make handling
common operations like flag manipulations simpler.  Finally, there are
a number of utility classes (see `pycomedi.utility`) to make common
tasks like creating instructions or reading hardware-timed analog
input easier.


Installation
============

Packages
--------

Gentoo
~~~~~~

I've packaged pycomedi for Gentoo.  You need layman_ and my `wtk
overlay`_.  Install with::

    # emerge -av app-portage/layman
    # layman --add wtk
    # emerge -av dev-python/pycomedi


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

If you're installing by hand or packaging pycomedi for another
distribution, you'll need the following dependencies:

=======  ===================  ================  ==========================
Package  Purpose              Debian_           Gentoo_
=======  ===================  ================  ==========================
NumPy_   ?                    python-numpy      dev-python/numpy
SciPy_   testing              python-scipy      sci-libs/scipy
Comedi_  Comedilib interface  python-comedilib  sci-libs/comedilib [#clb]_
nose_    testing              python-nose       dev-python/nose
Cython_  Comedilib interface  cython            dev-python/cython
=======  ===================  ================  ==========================

.. [#clb] In the `wtk overlay`_.


Installing by hand
------------------

Pycomedi is available as a Git_ repository::

    $ git clone git://tremily.us/pycomedi.git


See the homepage_ for details.  To install the checkout, run the
standard::

    $ python setup.py install


Usage
=====

See the examples in the `doc` directory.


Testing
=======

Integration tests with::

    $ nosetests --with-doctest --doctest-extension=txt doc

Run both integration tests and internal unit tests with::

    $ ./test.sh


Licence
=======

This project is distributed under the `GNU General Public License
Version 2`_ or greater.


Author
======

W. Trevor King
wking@tremily.us


.. _Comedi: http://www.comedi.org/
.. _layman: http://layman.sourceforge.net/
.. _wtk overlay: http://blog.tremily.us/posts/Gentoo_overlay/
.. _science overlay: http://overlays.gentoo.org/proj/science/wiki/en
.. _Debian: http://www.debian.org/
.. _Gentoo: http://www.gentoo.org/
.. _NumPy: http://numpy.scipy.org/
.. _SciPy: http://www.scipy.org/
.. _nose: http://somethingaboutorange.com/mrl/projects/nose/
.. _Cython: http://www.cython.org/
.. _Git: http://git-scm.com/
.. _homepage: http://blog.tremily.us/posts/pycomedi/
.. _GNU General Public License Version 2:
     http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
