What is Taurus?
Taurus is a Python framework for creating command-line and graphical user interfaces for experiment control and data acquisition.
It was originally conceived as a library for connecting client-side applications to Tango device servers. Since Taurus 4, its core is control-system agnostic and can support other control systems and data sources through plugins.
Taurus was developed within the Sardana project, but it was later moved to a separate project because it is also useful for applications that are not based on Sardana. The two projects remain closely related.
Models and user interfaces
Taurus uses the Model-View-Controller (MVC) pattern to build interfaces. The
taurus.core package provides models that abstract interactions with
data and control objects. Plugins known as schemes provide support for
specific data sources, such as Tango, EPICS, or evaluation models.
This abstraction allows Taurus applications to work with model names instead of directly depending on a particular control-system API. See Models and schemes for a detailed explanation of Taurus models, schemes, model names, and model fragments.
The view and controller components are most commonly implemented as Qt-based
GUIs. The taurus.qt package provides widgets such as labels, editors,
forms, plots, tables, buttons, and synoptics. These widgets extend regular Qt
widgets with the ability to attach to Taurus models and display or modify their
data.
For example, a TaurusForm can display and edit
several models, while plotting widgets can represent numeric attribute data.
See TaurusForm, Plotting with Taurus, and The TaurusGUI framework for more about
the corresponding user-interface concepts.
Where to start
If you are new to Taurus, start with Installation and then follow Build your first Taurus GUI in Python to build a small Taurus GUI step by step. Task-oriented instructions are available in How-to guides, while the complete Python API is available in Reference.