Skip to main content

Bridge between Tango and PyAML

Project description

tango-pyaml

Bridge between Tango Controls and PyAML

Overview

tango-pyaml is a Python bridge between the Tango control system and the PyAML abstraction layer for control systems. It provides a set of classes that allow Tango attributes and devices to be accessed and controlled using PyAML concepts.

This library is part of the Python Accelerator Middle Layer (PyAML) ecosystem.

Features

  • ✅ Read and write Tango attributes via a unified PyAML interface
  • 🔁 Support for read-only and read/write attributes
  • 📊 Grouped attribute operations using tango.Group
  • 💥 Exception mapping from Tango exceptions to PyAML exceptions
  • 🧹 Designed to integrate seamlessly with PyAML ControlSystem components
  • 🧪 Mocked devices for unit testing without Tango runtime

Installation

pip install tango-pyaml

Requirements

For development and testing:

pip install tango-pyaml[dev]

Usage Example

This is an example of an explicit call to a Tango attribute using PyAML. For more details about implicit declaration and broader configuration options, please refer to the PyAML documentation.

Configuration file attribute.yaml:

attribute: "sys/tg_test/1/float_scalar"
unit: "A"

Python code:

from tango.pyaml.attribute import Attribute
from tango.pyaml.tango_attribute import ConfigModel
import yaml

with open("attribute.yaml") as f:
    cfg_dict = yaml.safe_load(f)

cfg = ConfigModel(**cfg_dict)
attr = Attribute(cfg)

attr.set(10.0)
value = attr.get()
readback = attr.readback()

print(f"Value: {value}, Readback: {readback.value} [{readback.quality}]")

Available Classes

  • Attribute — Read/write access to a Tango attribute
  • AttributeReadOnly — Read-only attribute wrapper
  • AttributeList — Manage a group of attributes from multiple devices
  • TangoControlSystem — Adapter to configure global Tango control system context

Testing

Tests rely on mocked Tango devices and attributes using unittest.mock. To run tests:

pytest

Project Structure

  • tango.pyaml.attribute – Main attribute interface
  • tango.pyaml.attribute_read_only – Read-only attribute implementation
  • tango.pyaml.attribute_list – Attribute groups with tango.Group
  • tango.pyaml.tango_attribute – Base class wrapping attribute logic
  • mocked_device_proxy.py – In-memory mock for Tango DeviceProxy and AttributeProxy

License

This project is licensed under the MIT License.

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tango_pyaml-0.3.0.tar.gz (12.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tango_pyaml-0.3.0-py3-none-any.whl (16.1 kB view details)

Uploaded Python 3

File details

Details for the file tango_pyaml-0.3.0.tar.gz.

File metadata

  • Download URL: tango_pyaml-0.3.0.tar.gz
  • Upload date:
  • Size: 12.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tango_pyaml-0.3.0.tar.gz
Algorithm Hash digest
SHA256 f57804d0413be1fb2ed92effb6d5d2a230effb89c274370644604f0048dbcab6
MD5 29b533fcbe585d1209ecc5e87e275007
BLAKE2b-256 e123a9609d2731aa440135ba736056e272f8398d7013273203f0461d40c41242

See more details on using hashes here.

Provenance

The following attestation bundles were made for tango_pyaml-0.3.0.tar.gz:

Publisher: deploy-pypi.yaml on python-accelerator-middle-layer/tango-pyaml

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tango_pyaml-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: tango_pyaml-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 16.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tango_pyaml-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3abaa22febd242fd656f36d562411edea439b2bfa8ca8633814604b0de92a85e
MD5 ef41be013da0695b0cafc050efcb4e54
BLAKE2b-256 a8eaab69389f1b30d96a24a34f8936d75cceaf17fc7f5ba8d31e37d543672dfb

See more details on using hashes here.

Provenance

The following attestation bundles were made for tango_pyaml-0.3.0-py3-none-any.whl:

Publisher: deploy-pypi.yaml on python-accelerator-middle-layer/tango-pyaml

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page