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.3.tar.gz (13.3 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.3-py3-none-any.whl (16.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: tango_pyaml-0.3.3.tar.gz
  • Upload date:
  • Size: 13.3 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.3.tar.gz
Algorithm Hash digest
SHA256 b32be894d582c67e127c8aedf429df2d67bc718f77044a723f8fc600fca998c6
MD5 67616070d03b3e9e9d5474ffbf5643a3
BLAKE2b-256 11686e96189b727f60bfa5a90e99d8c866aba7056761cccaa6715fc83e6c735c

See more details on using hashes here.

Provenance

The following attestation bundles were made for tango_pyaml-0.3.3.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.3-py3-none-any.whl.

File metadata

  • Download URL: tango_pyaml-0.3.3-py3-none-any.whl
  • Upload date:
  • Size: 16.4 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ef7b82a02c59d958fed658f0eba182f042c5c49f4c8a374b99ab778e05c96a5e
MD5 6f607e4aafa387c5351b0ce9fce1d5cb
BLAKE2b-256 f93631b930127db5fb5536ce22b973b300b5a41543caa1106964668c6dd1026b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tango_pyaml-0.3.3-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