Skip to content
Functional tools for PyTango / Tango Control System http://www.tango-controls.org/resources/howto/how-fandango/
Python Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc
fandango 14.5.1 Improvements for SimulatorDS and Taurus Archiving Schema Apr 16, 2019
.gitignore
AUTHORS
LICENSE
MANIFEST.in
README.rst
WARRANTY
setup.py

README.rst

Fandango, functional tools for Tango Control System

Fandango ("functional" programming for Tango) is a Python library for developing functional and multithreaded control applications and scripts. It is mostly (but not only) used in the scope of Tango Control System and PANIC Alarm System projects.

Fandango is available at:

pip install fandango

Description

Fandango was developed to simplify the configuration of big control systems; implementing the behavior of Jive (configuration) and/or Astor (deployment) tools in methods that could be called from scripts using regexp and wildcards.

It has been later extended with methods commonly used in some of our python API's (archiving, CCDB, alarms, vacca) or generic devices (composers, simulators, facades).

Fandango python modules provides functional methods, classes and utilities to develop high-level device servers and APIs for Tango control system.

Fandango is published using the same licenses than other TANGO projects; the license will be kept up to date in the LICENSE file

FANDANGO IS TESTED ON LINUX ONLY, WINDOWS/MAC MAY NOT BE FULLY SUPPORTED IN MASTER BRANCH

For more comprehensive documentation:

Checkout for more updated recipes at:

Authors

Fandango library was originally written by Sergi Rubio Manrique for the ALBA Synchrotron. Later authors will be acknowledged in the AUTHORS file

Features

This library provides submodules with utilities for PyTango device servers and applications written in python:

Main Classes

  • DynamicDS/DynamicAttributes
  • ServersDict
  • TangoEval
  • ThreadDict/SingletoneWorker
  • TangoInterfaces(FullTangoInheritance)

Where it is used

Several PyTango APIs and device servers use Fandango modules:

  • PyTangoArchiving
  • PyPLC
  • SplitterBoxDS
  • PyStateComposer
  • PySignalSimulator
  • PyAlarm
  • CSVReader
  • ...

Requirements

  • The functional, object submodules doesn't have any dependency
  • It requires PyTango to use tango, device, dynamic and callback submodules
  • Some submodules have its own dependencies (Qt,MySQL), so they are always imported within try,except clauses.

Downloading

Fandango module is available from github (>=T9) and sourceforge (<=T9):

git clone https://github.com/tango-controls/fandango

svn co https://tango-cs.svn.sourceforge.net/svnroot/tango-cs/share/fandango/trunk fandango.src

Warranty

see WARRANTY file

You can’t perform that action at this time.