Repository navigation
Align the output of the yellow pages with the content of the accelerator #365
Copy link
Copy link
Open
Milestone
Description
I think we should align the output of the yellow pages with how the ElementHolders are arranged inside the accelerator now. My thinking is the following:
- The user loads a configuration file created by someone else (likely a maintainer in their lab).
- They use
accelerator.yellow_pagesto list what has been created and understand what is available for them to use. - From this they directly get an idea for what to do next if they want to get a specific device/array for a specific mode.
This is the current output from the yellow pages after I loaded the configuration for the integration test:
Controls:
live
.
Simulators:
design
.
Arrays:
QF_001 (pyaml.arrays.magnet_array) size=1
SF_001 (pyaml.arrays.magnet_array) size=1
QD_001 (pyaml.arrays.magnet_array) size=1
SD_001 (pyaml.arrays.magnet_array) size=1
QF_002 (pyaml.arrays.magnet_array) size=1
SF_002 (pyaml.arrays.magnet_array) size=1
QD_002 (pyaml.arrays.magnet_array) size=1
SD_002 (pyaml.arrays.magnet_array) size=1
QF_003 (pyaml.arrays.magnet_array) size=1
SF_003 (pyaml.arrays.magnet_array) size=1
QD_003 (pyaml.arrays.magnet_array) size=1
SD_003 (pyaml.arrays.magnet_array) size=1
QF_004 (pyaml.arrays.magnet_array) size=1
SF_004 (pyaml.arrays.magnet_array) size=1
QD_004 (pyaml.arrays.magnet_array) size=1
SD_004 (pyaml.arrays.magnet_array) size=1
QF_005 (pyaml.arrays.magnet_array) size=1
SF_005 (pyaml.arrays.magnet_array) size=1
QD_005 (pyaml.arrays.magnet_array) size=1
SD_005 (pyaml.arrays.magnet_array) size=1
QF_006 (pyaml.arrays.magnet_array) size=1
SF_006 (pyaml.arrays.magnet_array) size=1
QD_006 (pyaml.arrays.magnet_array) size=1
SD_006 (pyaml.arrays.magnet_array) size=1
QF_007 (pyaml.arrays.magnet_array) size=1
SF_007 (pyaml.arrays.magnet_array) size=1
QD_007 (pyaml.arrays.magnet_array) size=1
SD_007 (pyaml.arrays.magnet_array) size=1
QF_008 (pyaml.arrays.magnet_array) size=1
SF_008 (pyaml.arrays.magnet_array) size=1
QD_008 (pyaml.arrays.magnet_array) size=1
SD_008 (pyaml.arrays.magnet_array) size=1
QF_009 (pyaml.arrays.magnet_array) size=1
SF_009 (pyaml.arrays.magnet_array) size=1
QD_009 (pyaml.arrays.magnet_array) size=1
SD_009 (pyaml.arrays.magnet_array) size=1
QF_010 (pyaml.arrays.magnet_array) size=1
SF_010 (pyaml.arrays.magnet_array) size=1
QD_010 (pyaml.arrays.magnet_array) size=1
SD_010 (pyaml.arrays.magnet_array) size=1
QF_011 (pyaml.arrays.magnet_array) size=1
SF_011 (pyaml.arrays.magnet_array) size=1
QD_011 (pyaml.arrays.magnet_array) size=1
SD_011 (pyaml.arrays.magnet_array) size=1
QF_012 (pyaml.arrays.magnet_array) size=1
SF_012 (pyaml.arrays.magnet_array) size=1
QD_012 (pyaml.arrays.magnet_array) size=1
SD_012 (pyaml.arrays.magnet_array) size=1
QF_013 (pyaml.arrays.magnet_array) size=1
SF_013 (pyaml.arrays.magnet_array) size=1
QD_013 (pyaml.arrays.magnet_array) size=1
SD_013 (pyaml.arrays.magnet_array) size=1
QF_014 (pyaml.arrays.magnet_array) size=1
SF_014 (pyaml.arrays.magnet_array) size=1
QD_014 (pyaml.arrays.magnet_array) size=1
SD_014 (pyaml.arrays.magnet_array) size=1
QF_015 (pyaml.arrays.magnet_array) size=1
SF_015 (pyaml.arrays.magnet_array) size=1
QD_015 (pyaml.arrays.magnet_array) size=1
SD_015 (pyaml.arrays.magnet_array) size=1
QF_016 (pyaml.arrays.magnet_array) size=1
SF_016 (pyaml.arrays.magnet_array) size=1
QD_016 (pyaml.arrays.magnet_array) size=1
SD_016 (pyaml.arrays.magnet_array) size=1
Cell1 (pyaml.arrays.element_array) size=4
Cell2 (pyaml.arrays.element_array) size=4
Cell3 (pyaml.arrays.element_array) size=4
Cell4 (pyaml.arrays.element_array) size=4
Cell5 (pyaml.arrays.element_array) size=4
Cell6 (pyaml.arrays.element_array) size=4
Cell7 (pyaml.arrays.element_array) size=4
Cell8 (pyaml.arrays.element_array) size=4
Cell9 (pyaml.arrays.element_array) size=4
Cell10 (pyaml.arrays.element_array) size=4
Cell11 (pyaml.arrays.element_array) size=4
Cell12 (pyaml.arrays.element_array) size=4
Cell13 (pyaml.arrays.element_array) size=4
Cell14 (pyaml.arrays.element_array) size=4
Cell15 (pyaml.arrays.element_array) size=4
Cell16 (pyaml.arrays.element_array) size=4
.
Diagnostics:
BETATRON_TUNE (pyaml.diagnostics.tune_monitor)
.
From this I can understand that I need to do something like accelerator.design to read from the simulator which is already very nice, but after that I would guess accelerator.design.QF_001 which is not the interface. Instead I need to do accelerator.design.magnets.get("QF_001").
If the yellow pages would show the categories corresponding to the element holders maybe the interface would be easier for the users to understand and remember?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity
GamelinAl commentedon Sep 4, 2026
Once #199 has been fully implemented, this will become much easier:
This is feature which will grant easy access.
TeresiaOlsson commentedon Sep 4, 2026
That will be perfect! And it makes the interface similar to pyAT which hopefully should make it easier for pyAT users to get started.
TeresiaOlsson commentedon Oct 2, 2026
I think the tutorial in python-accelerator-middle-layer/documentation#53 show the problem. I think at the moment it's too confusing what the architecture responsibilities are between the yellow pages and the element holder and their APIs are not aligned.
@GamelinAl if you make an issue to discuss
sr.design.magnetsvssr.design.magnetmaybe as part of that discussion we should also discuss the alignment with the API of the yellow pages because my feeling is that after settling on the API for the element holders the yellow pages can be modified to agree with it.