Metadata-Version: 2.0
Name: Instrumental-lib
Version: 0.5
Summary: Library with high-level drivers for lab equipment
Home-page: https://github.com/mabuchilab/Instrumental
Author: Nate Bogdanowicz
Author-email: natezb@gmail.com
License: GPLv3
Description-Content-Type: UNKNOWN
Platform: UNKNOWN
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Requires-Dist: numpy
Requires-Dist: scipy
Requires-Dist: pint (>=0.7)
Requires-Dist: future
Provides-Extra: cameras.pco
Requires-Dist: cffi; extra == 'cameras.pco'
Requires-Dist: pycparser; extra == 'cameras.pco'
Requires-Dist: nicelib; extra == 'cameras.pco'
Provides-Extra: cameras.picam
Requires-Dist: nicelib; extra == 'cameras.picam'
Provides-Extra: cameras.pixelfly
Requires-Dist: win32event; extra == 'cameras.pixelfly'
Requires-Dist: nicelib; extra == 'cameras.pixelfly'
Provides-Extra: cameras.pvcam
Requires-Dist: cffi; extra == 'cameras.pvcam'
Provides-Extra: cameras.tsi
Requires-Dist: cffi; extra == 'cameras.tsi'
Provides-Extra: cameras.uc480
Requires-Dist: pywin32; extra == 'cameras.uc480'
Requires-Dist: nicelib (>=0.5); extra == 'cameras.uc480'
Provides-Extra: daq.ni
Requires-Dist: nicelib (>=0.5); extra == 'daq.ni'
Provides-Extra: funcgenerators.tektronix
Provides-Extra: lasers.femto_ferb
Provides-Extra: lockins.sr850
Requires-Dist: visa; extra == 'lockins.sr850'
Provides-Extra: motion.ecc100
Provides-Extra: motion.filter_flipper
Requires-Dist: cffi; extra == 'motion.filter_flipper'
Requires-Dist: nicelib; extra == 'motion.filter_flipper'
Provides-Extra: motion.kinesis
Requires-Dist: nicelib; extra == 'motion.kinesis'
Provides-Extra: motion.tdc_001
Requires-Dist: nicelib; extra == 'motion.tdc_001'
Requires-Dist: cffi; extra == 'motion.tdc_001'
Provides-Extra: multimeters.hp
Provides-Extra: powermeters.newport
Provides-Extra: powermeters.thorlabs
Provides-Extra: scopes.tektronix
Requires-Dist: visa; extra == 'scopes.tektronix'
Requires-Dist: pyvisa; extra == 'scopes.tektronix'
Provides-Extra: spectrometers.bristol
Provides-Extra: spectrometers.thorlabs_ccs
Requires-Dist: visa; extra == 'spectrometers.thorlabs_ccs'
Requires-Dist: cffi; extra == 'spectrometers.thorlabs_ccs'
Requires-Dist: nicelib; extra == 'spectrometers.thorlabs_ccs'
Provides-Extra: tempcontrollers.covesion
Requires-Dist: pyvisa; extra == 'tempcontrollers.covesion'
Provides-Extra: tempcontrollers.hcphotonics
Requires-Dist: pyvisa; extra == 'tempcontrollers.hcphotonics'
Provides-Extra: vacuum.sentorr_mod
Requires-Dist: serial; extra == 'vacuum.sentorr_mod'
Provides-Extra: wavemeters.burleigh

:alt: Travis CI

.. image:: https://img.shields.io/appveyor/ci/natezb/Instrumental/master.svg
    :target: https://ci.appveyor.com/project/natezb/instrumental
    :alt: AppVeyor CI

.. image:: https://img.shields.io/pypi/v/Instrumental-lib.svg
    :target: https://pypi.python.org/pypi/Instrumental-lib
    :alt: PyPI

.. image:: https://readthedocs.org/projects/instrumental-lib/badge/
   :target: https://instrumental-lib.readthedocs.io
   :alt: Documentation


|logo| Instrumental
===================

Instrumental is a Python-based library for controlling lab hardware like cameras, DAQs,
oscilloscopes, spectrometers, and more. It has high-level drivers for instruments from NI,
Tektronix, Thorlabs, PCO, Photometrics, Burleigh, and others.

Instrumental's goal is to make common tasks simple to perform, while still providing the
flexibility to perform complex tasks with relative ease. It also makes it easy to mess around with
instruments in the shell. For example, to list the available instruments and open one of them::

    >>> from instrumental import instrument, list_instruments
    >>> paramsets = list_instruments()
    >>> paramsets
    [<ParamSet[TSI_Camera] serial='05478' number=0>,
     <ParamSet[K10CR1] serial='55000247'>
     <ParamSet[NIDAQ] model='USB-6221 (BNC)' name='Dev1'>]
    >>> daq = instrument(paramsets[2])
    >>> daq
    <instrumental.drivers.daq.ni.NIDAQ at 0xb61...>

If you're going to be using an instrument repeatedly, save it for later::

    >>> daq.save_instrument('myDAQ')

Then you can simply open it by name::

    >>> daq = instrument('myDAQ')

Instrumental also bundles in some additional support code, including:

* Plotting and curve fitting utilities
* Utilities for acquiring and organizing data

Instrumental makes use of NumPy, SciPy, Matplotlib, and Pint, a Python units
library. It optionally uses PyVISA/VISA and other drivers for interfacing with
lab equipment.

For install information, documentation, examples, and more, see our page on
`ReadTheDocs <http://instrumental-lib.readthedocs.org/>`_.

.. |logo| image:: images/logo-small.png
          :alt: Instrumental

