skillfed

phoebusgen

Screen generator for CS-Studio Phoebus displays

phoebusgen v3.3.0 127.3K downloads/30d#11,747 on PyPI20
Copyleft license GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and… (full text in the JSON record) Active released

What it is and what it does

phoebusgen is a Python library that generates Phoebus Display Builder XML—the format used by Phoebus, the next-generation control interface for EPICS control systems. Instead of manually editing XML or using the graphical editor, you define screens and widgets as Python objects, configure their properties through method calls, and serialize them to .bob files ready for Phoebus to open. It covers all standard Phoebus widgets and supports multiple Phoebus versions through configurable widget definitions.

The library is organized around two main modules: phoebusgen.widget provides Python classes for every Phoebus widget type with methods to set colors, fonts, and other properties; phoebusgen.screen wraps a collection of widgets into a complete screen object. You can nest widgets inside containers like Group or Tab, override site-specific color and font definitions via configuration files, and target different Phoebus releases by changing the active version. It has minimal dependencies—only dataclasses—making it lightweight to integrate into build pipelines or automation scripts.

Use it for:

  • Automate generation of repetitive EPICS control screens from a template or database of PV names
  • Version-control screen definitions as Python code rather than binary or XML files
  • Programmatically create screen variants for different Phoebus versions without manual editing
  • Integrate screen generation into CI/CD pipelines for control system deployments
  • Generate screens dynamically based on runtime configuration or device discovery

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Generates Phoebus Display Builder XML format programmatically from Python, allowing you to create control system UI screens as code rather than through the graphical editor.

Yes, if you work with Phoebus and EPICS control systems and want to automate or version-control screen generation. The package is actively maintained, has no security vulnerabilities, and carries low install friction. The GPLv2 license is a consideration only if you plan to distribute proprietary derivatives; internal use is unrestricted. Install it if screen-as-code fits your workflow; skip it if you only occasionally edit screens in the GUI.

Install

phoebusgen on PyPI

pip

pip install phoebusgen

uv

uv add phoebusgen

poetry

poetry add phoebusgen

Installing phoebusgen

Before you install

Low friction: pure Python wheel with only dataclasses as a runtime dependency. Active maintenance with a recent release and ongoing repository activity.

License in practice

GPLv2 copyleft license requires that any derivative work or distribution must also be licensed under GPLv2 and include source code availability. This is restrictive for proprietary applications but poses no issue for internal or open-source use.

Quickstart

pip install phoebusgen
import phoebusgen
widget = phoebusgen.widget.TextUpdate('my_widget', 'TEST:PV', 10, 20, 20, 50)
screen = phoebusgen.screen.Screen('my_screen')
screen.add_widget(widget)
print(screen)  # outputs Display Builder XML

Verify before relying

  • Whether version-specific widget definitions beyond 4.7.3 are maintained or planned
  • Performance characteristics when generating screens with many widgets

Package facts

License GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and… (full text in the JSON record) (copyleft)
Python support supports the current Python release (>=3.6)
Install friction low — pure-Python wheel
Runtime dependencies 1 — dataclasses
Maintenance actively maintained — 65 days since the last release
Last repo commit
First released
Downloads 127,338/month — #11,747 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: phoebusgen-3.3.0-py3-none-any.whl

Development Status :: 5 - Production/StableLicense :: OSI Approved :: GNU General Public License v2 (GPLv2)Operating System :: OS IndependentProgramming Language :: Python :: 3Topic :: Software Development :: Code Generators

Tags

phoebus screen generatorepics control system uidisplay builder xml pythoncs-studio screen automationcontrol system display code
epicscontrol-systemscode-generation

More Code Generators packages