/automatic-carnival

Playing around with cmake, boost, python

Primary LanguagePythonOtherNOASSERTION

PyTango

Main website: http://pytango.readthedocs.io

Python binding for Tango, a library dedicated to distributed control systems.

Description

PyTango exposes the complete Tango C++ API through the tango python module. It also adds a bit of abstraction by taking advantage of the Python capabilities:

  • tango.client provides a client access to device servers and databases.
  • tango.server provides base classes to declare and run device servers.

Requirements

PyTango is compatible with python 3.6+.

General dependencies:

Python dependencies:

Build dependencies:

Optional dependencies (test):

Note

As a general rule, cppTango and pytango should share the same major and minor version (for a version X.Y.Z, X and Y should match). On some systems you may need to install omniORB4 and libzmq related development packages.

Install

PyTango is available on PyPI as pytango, with pre-built binaries for some platforms (you need pip>=19.3, so upgrade first if necessary):

$ python -m pip install --upgrade pip
$ python -m pip install pytango

Alternatively, pre-built PyTango binaries can be installed from Conda Forge_:

$ conda install -c conda-forge pytango

For the very latest code, or for development purposes, PyTango can be built and installed from the sources. This is complicated by the dependencies - see the Getting Started section in the documentation.

Usage

To test the installation, import tango and check tango.utils.info():

>>> import tango
>>> print(tango.utils.info())
PyTango 9.4.2.dev0 (9, 4, 2, 'dev', 0)
PyTango compiled with:
    Python : 3.11.2
    Numpy  : PYTANGO_NUMPY_VERSION
    Tango  : 9.4.1
    Boost  : 1.81.0

PyTango runtime is:
    Python : 3.11.2
    Numpy  : 1.24.2
    Tango  : 9.4.1

PyTango running on:
uname_result(system='Darwin', node='osloxf01', release='21.6.0', version='Darwin Kernel Version 21.6.0: Mon Dec 19 20:43:09 PST 2022; root:xnu-8020.240.18~2/RELEASE_ARM64_T6000', machine='arm64')

For an interactive use, consider using ITango, a tango IPython profile.

Documentation

Check out the documentation for more information.

Support and contribution

You can get support from the Tango forums, for both Tango and PyTango questions.

All contributions, PR and bug reports are welcome, please see: How to Contribute !