{"id":24234,"library":"phoebusgen","title":"PhoebusGen","description":"A Python library for programmatically generating CS-Studio Phoebus display files (*.bob). Current version 3.2.0 (requires Python >=3.5). Active development with irregular releases.","status":"active","version":"3.2.0","language":"python","source_language":"en","source_url":"https://github.com/als-epics/phoebusgen","tags":["CS-Studio","Phoebus","screen generator","EPICS","display"],"install":[{"cmd":"pip install phoebusgen","lang":"bash","label":"Install from PyPI"}],"dependencies":[],"imports":[{"note":"","wrong":"","symbol":"Screen","correct":"from phoebusgen import Screen"},{"note":"","wrong":"","symbol":"widgets","correct":"from phoebusgen.widgets import TextUpdate, ActionButton"}],"quickstart":{"code":"from phoebusgen import Screen\nfrom phoebusgen.widgets import TextUpdate\n\nscreen = Screen('MyScreen')\nwidget = TextUpdate('my_pv')\nscreen.add_widget(widget)\nscreen.to_xml('my_screen.bob')","lang":"python","description":"Create a simple screen with a TextUpdate widget and export to .bob file."},"warnings":[{"fix":"Update code to use Screen('Name', bob_version=...) if setting version explicitly.","message":"Version 3.0.0 introduced widget versioning and breaking changes to init of Screen and widget classes. Screen no longer accepts some positional arguments; use keyword arguments for version parameter.","severity":"breaking","affected_versions":">=3.0.0"},{"fix":"Use `.bob` extension, e.g., screen.to_xml('screen.bob').","message":"The `to_xml` method writes .bob XML files, not XML in the traditional sense. Ensure the file extension is .bob for Phoebus to recognize.","severity":"gotcha","affected_versions":">=2.0.0"},{"fix":"Check the latest documentation for updated action methods.","message":"The `action_execute_external_script` method in ActionButton may be deprecated in favor of `action_execute_script` in future versions.","severity":"deprecated","affected_versions":">=2.7.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use: from phoebusgen import Screen","cause":"Forgot to import Screen correctly.","error":"AttributeError: module 'phoebusgen' has no attribute 'Screen'"},{"fix":"Ensure the working directory is writable or provide an absolute path.","cause":"The screen was not saved to disk; to_xml writes the file but the path may be relative to current working directory.","error":"FileNotFoundError: [Errno 2] No such file or directory: 'my_screen.bob'"},{"fix":"Use valid version strings like 'default' or specific numeric version supported by Phoebus.","cause":"Passing an invalid bob_version to a widget constructor.","error":"ValueError: Invalid widget version specified"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}